Evg*_*nii 11 testing rspec2 ruby-on-rails-3
如何将rspec 2测试组织成"单元"(快速)和"集成"(慢)类别?
rspec命令运行所有单元测试,而不是"集成"测试.Ken*_*Dev 19
我们有相同性质的团体.然后我们在本地开发盒和CI上逐个运行.
你可以干脆做
bundle exec rake spec:unit
bundle exec rake spec:integration
bundle exec rake spec:api
Run Code Online (Sandbox Code Playgroud)
这就是我们的spec.rake的样子
namespace :spec do
RSpec::Core::RakeTask.new(:unit) do |t|
t.pattern = Dir['spec/*/**/*_spec.rb'].reject{ |f| f['/api/v1'] || f['/integration'] }
end
RSpec::Core::RakeTask.new(:api) do |t|
t.pattern = "spec/*/{api/v1}*/**/*_spec.rb"
end
RSpec::Core::RakeTask.new(:integration) do |t|
t.pattern = "spec/integration/**/*_spec.rb"
end
end
Run Code Online (Sandbox Code Playgroud)
一种方法是标记您的RSpec测试用例,如下所示:
it "should do some integration test", :integration => true do
# something
end
Run Code Online (Sandbox Code Playgroud)
执行测试用例时,请使用以下命令:
rspec . --tag integration
Run Code Online (Sandbox Code Playgroud)
这将使用标记执行所有测试用例:integration => true.有关更多信息,请参阅此页面.