从事发展工作的政治家,而不是CI

时间:2015-07-13 19:39:33

标签: javascript ruby-on-rails testing capybara poltergeist

我一直在使用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。

非常感谢任何帮助,我几天来一直在努力解决这个问题

2 个答案:

答案 0 :(得分:0)

这可能是由于很多原因...我可以建议调试这是看失败后生成的屏幕截图...将下面的代码添加到spec_helper中的capybara配置中:

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

答案 1 :(得分:0)

真的没有找到答案,只是偶尔失败/通过,所以我添加了一个名为rspec-rerun的新gem并将其设置为CI平台上的默认rake命令。多次重试测试似乎可以使它工作,但速度不快。