致力于开发的恶作剧者,而不是 CI
poltergeist working on development, not on CI
我一直在使用 poltergeist 和 capybara 为我的网站编写一些测试,它们都在我的开发机器上通过,但在我使用的持续集成平台 (Codeship) 上却失败了。我查了一下并尝试了所有不同的解决方案,但唯一能让它工作的是如果我切换到硒,如果可能的话我宁愿不这样做。我想知道是否有人对此有一些建议,我在网上看到了很多关于它的话题,但到目前为止对我没有任何帮助。
在我的代码中 page.should have_content("Post created successfully.")
是我所有测试都失败的地方,因为它无法在创建地图文件时加载的页面上找到此消息(因为它还没有到达那里)因为某些原因)。我尝试过所有类型的睡眠,现在 spec_helper.rb.
中的等待时间设置为 20 秒
示例代码如下:
add_mapfile_spec.rb
before(:each) do
sign_in_and_create_facility
end
scenario 'Creating a mapfile works from locations path' do
add_mapfile_to_facility_from_main("Bat Cave", "save")
page.should have_content("Post created successfully.")
page.should have_content("Facility: Bat Cave")
page.should have_content("definitelynotbrucewayne@digitallumens.com")
page.should have_content("save.map")
page.should have_content("Cannot Move")
visit locations_path
page.should have_content("definitelynotbrucewayne@digitallumens.com")
page.should have_content("save.map")
end
添加映射文件功能
def add_mapfile_to_facility_from_main(name, mapfile)
visit locations_path
find('#create-map').click
select "#{name}", :from => "post[location_id]"
attach_file('post_mapfile', File.join(Rails.root.to_s, 'spec', 'fixtures', "#{mapfile}.map"))
find('#submit-map').click
sleep(1)
end
Sign_in_and_create_facility 按预期工作,所以我知道它不是那个功能。 js 在这些上设置为 true。
非常感谢任何帮助,我已经为此苦苦挣扎了几天
这可能是由于多种原因造成的...我的建议是调试它以查看失败后生成的屏幕截图...将下面的代码添加到 spec_helper 中的水豚配置中:
Capybara::Screenshot.register_filename_prefix_formatter(:rspec) do |example|
"screenshot_#{example.description.gsub(' ', '-').gsub(/^.*\/spec\//,'')}"
end
screenshot_path = "#{PROJECT_ROOT}/screenshot/"
config.save_and_open_page_path = screenshot_path
真的从来没有找到答案,只是偶尔 failed/passed,所以我添加了一个名为 rspec-rerun 的新 gem,并将其设置为 CI平台。多次重新运行测试似乎可以正常工作,但速度不快。
我一直在使用 poltergeist 和 capybara 为我的网站编写一些测试,它们都在我的开发机器上通过,但在我使用的持续集成平台 (Codeship) 上却失败了。我查了一下并尝试了所有不同的解决方案,但唯一能让它工作的是如果我切换到硒,如果可能的话我宁愿不这样做。我想知道是否有人对此有一些建议,我在网上看到了很多关于它的话题,但到目前为止对我没有任何帮助。
在我的代码中 page.should have_content("Post created successfully.")
是我所有测试都失败的地方,因为它无法在创建地图文件时加载的页面上找到此消息(因为它还没有到达那里)因为某些原因)。我尝试过所有类型的睡眠,现在 spec_helper.rb.
示例代码如下:
add_mapfile_spec.rb
before(:each) do
sign_in_and_create_facility
end
scenario 'Creating a mapfile works from locations path' do
add_mapfile_to_facility_from_main("Bat Cave", "save")
page.should have_content("Post created successfully.")
page.should have_content("Facility: Bat Cave")
page.should have_content("definitelynotbrucewayne@digitallumens.com")
page.should have_content("save.map")
page.should have_content("Cannot Move")
visit locations_path
page.should have_content("definitelynotbrucewayne@digitallumens.com")
page.should have_content("save.map")
end
添加映射文件功能
def add_mapfile_to_facility_from_main(name, mapfile)
visit locations_path
find('#create-map').click
select "#{name}", :from => "post[location_id]"
attach_file('post_mapfile', File.join(Rails.root.to_s, 'spec', 'fixtures', "#{mapfile}.map"))
find('#submit-map').click
sleep(1)
end
Sign_in_and_create_facility 按预期工作,所以我知道它不是那个功能。 js 在这些上设置为 true。
非常感谢任何帮助,我已经为此苦苦挣扎了几天
这可能是由于多种原因造成的...我的建议是调试它以查看失败后生成的屏幕截图...将下面的代码添加到 spec_helper 中的水豚配置中:
Capybara::Screenshot.register_filename_prefix_formatter(:rspec) do |example|
"screenshot_#{example.description.gsub(' ', '-').gsub(/^.*\/spec\//,'')}"
end
screenshot_path = "#{PROJECT_ROOT}/screenshot/"
config.save_and_open_page_path = screenshot_path
真的从来没有找到答案,只是偶尔 failed/passed,所以我添加了一个名为 rspec-rerun 的新 gem,并将其设置为 CI平台。多次重新运行测试似乎可以正常工作,但速度不快。