gpt4 book ai didi

ruby-on-rails - cucumber 测试突然停止

转载 作者:行者123 更新时间:2023-12-04 08:09:17 25 4
gpt4 key购买 nike

我有这样的功能:

Feature: Searching chats
In order to find chats
As an user
I want to find different chats by username or ad name

Background:
Given System prepares for chats
And There is a few machines with names:
| machine_1 |
| machine_2 |
| machine_3 |
And There is a few services with names:
| service_1 |
| service_2 |
| service_3 |
And I have chats with ads owners

Scenario: Searching chats
When I am logged in as a "user"
And I go to chats page # <- stops here
Then I should see search results when I fill form with:
| input | results |
| ma | machine_1, machine_2, machine_3 |
| se | service_1, service_2, service_3 |

当我启动 cucumber 功能(或场景)时,它突然在“我转到聊天页面”步骤停止,没有任何错误消息。结果看起来像:
[alex@MacBookPro ~/my_project | master]$ cucumber features/chat/search.feature
Using the default profile...
@javascript
Feature: Searching chats
In order to find chats
As an user
I want to find different chats by username or ad name

Background: # features/chat/search.feature:8
Given System prepares for chats # features/step_definitions/chats.steps.rb:11
And There is a few machines with names: # features/step_definitions/machine.steps.rb:10
| machine_1 |
| machine_2 |
| machine_3 |
And There is a few services with names: # features/step_definitions/service.steps.rb:144
| service_1 |
| service_2 |
| service_3 |
And I have chats with ads owners # features/step_definitions/chats.steps.rb:5

Scenario: Searching chats # features/chat/search.feature:20
When I am logged in as a "user" # features/step_definitions/user.steps.rb:68
And I go to chats page # features/step_definitions/chats.steps.rb:17
[alex@MacBookPro~/my_project | master]$

这是我的“下降”步骤:
When /^I go to chats page$/ do
visit root_path

within('.global-menu') do
click_on username(@current_user)
click_on I18n.t('views.menu.profile.links.dashboard')
end

click_on I18n.t('views.menu.profile.links.chats')
end

Then(/^I should see search results when I fill form with:$/) do |table|
table.hashes.each do |search_data|
### searching ###
@page.query.set search_data['input']

# for AJAX search
sleep 1

### show results ###
search_data['results'].split(', ').each do |res|
page.should have_content res.mb_chars.upcase
end

within('#chats') do
page.all('.chat').length.should == search_data['results'].split(', ').size
end
end
end

我正在使用带有 cucumber 的 capybara webkit。那是我的 env.rb:
require 'rubygems'
require 'spork'
require 'capybara'
require 'capybara/rspec'
require 'selenium-webdriver'
require 'site_prism'
require 'capybara-screenshot/cucumber'
# require 'cucumber/rails'


# 1) Tag your scenario (or feature) with @allow-rescue
#
# 2) Set the value below to true. Beware that doing this globally is not
# recommended as it will mask a lot of errors for you!
#
# ActionController::Base.allow_rescue = false

#############################################################################

ENV['SKIP_RAILS_ADMIN_INITIALIZER'] = 'false' # This fixes weird errors with cucumber + rails_admin (http://makandracards.com/makandra/9597-rake-spec-+-rails_admin-weirdly-failing-specs).

#############################################################################

Before do
DatabaseCleaner.strategy = :truncation

DatabaseCleaner.clean
FactoryGirl.create(:setting)
ContactType.generate_contact_types
ContactType.generate_ims
end

Spork.prefork do
require 'cucumber/rails'
require 'email_spec' # add this line if you use spork
require 'email_spec/cucumber'
Capybara.default_selector = :css
end

Spork.each_run do
ActionController::Base.allow_rescue = false

begin
DatabaseCleaner.strategy = :truncation
rescue NameError
raise "You need to add database_cleaner to your Gemfile (in the :test group) if you wish to use it."
end

Capybara.register_driver :webkit do |app|
Capybara::Webkit::Driver.new(app, :stderr => nil)
end

Capybara.javascript_driver = :webkit

Cucumber::Rails::Database.javascript_strategy = :truncation
end

当我将我的项目更新到 rails4 时出现问题。有任何想法吗?

最佳答案

我管理的很多开发人员都找到了 Capybara-webkit真的有问题和不一致。
poltergeist/PhantomJS比它有很多优势。一般它:

  • 更具确定性,因为问题场景更可能始终失败而不是片状
  • 较少依赖机器;我们的套件现在在所有测试环境中的行为几乎相同
  • 提供更好的错误信息
  • 出现 Javascript 错误时失败,即使测试会通过
  • 不挂,和
  • 更容易安装。

  • 这是一个 good post from Dave Schweisguth 关于 his presentation 在 2 月的自动化测试 SF 聚会上,他讨论了他的公司 (Fandor) 的测试设置/环境、问题和故障排除以及快速比较。它可能会帮助您追踪您的问题。

    关于ruby-on-rails - cucumber 测试突然停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21550514/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com