我最近开始在我的Rails应用程序中使用RSpec进行集成测试,以避免与多个测试框架保持同步,并且正在将我的Cucumber功能转换为RSpec。
我已经成功运行了1个集成测试,但是,它似乎运行了两次示例:
rspec spec/integration/create_article_spec.rb -f documentation
admin creates article
successfully creates article
admin creates article
successfully creates article
Finished in 0.51816 seconds
2 examples, 0 failures
以下是create_article_spec.rb的内容:
require 'spec_helper'
feature "admin creates article" do
scenario "successfully creates article" do
visit admin_articles_url
click_link "New Article"
fill_in "Title", with: "Test 1"
fill_in "Body", with: "Test Article"
click_button "Save"
page.should have_content "New Article Published"
end
end
我找不到任何可能发生这种情况的原因,而且发生这种情况的所有其他情况都不适用于我的情况。
它似乎只发生在我的集成测试中,所有其他测试似乎都没有受到影响。
我希望有更多RSpec知识的人比我能找出错过的东西。
Rails(3.2.2) RSpec(2.8.0) RSpec-rails(2.8.1)
答案 0 :(得分:4)
我意识到我的spec_helper.rb文件中有一行,包括我的集成测试文件夹中的所有文件,因此它们实际上被加载了两次。我删除了那一行,它解决了我的问题。
答案 1 :(得分:1)
您是否从之前版本的rspec升级?如果是这样(并检查即使你没有),你可能有一个多余的lib/tasks/rspec.rake
脚本。如果这样做,请删除该文件并重新运行测试。然后你应该看到他们只执行一次。