首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将rspec 2测试组织为rails中的“单元”和“集成”类别

将rspec 2测试组织为rails中的“单元”和“集成”类别
EN

Stack Overflow用户
提问于 2012-04-05 13:10:24
回答 5查看 4.4K关注 0票数 13

如何将rspec 2测试组织为“单元”(快速)和“集成”(慢)类别?

  • 我希望能够只使用rspec命令运行所有单元测试,而不是使用“集成”测试。
  • 我希望能够只运行“集成”测试。
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-04-05 13:26:28

我们有相同性质的群体。然后,我们在本地的开发框和CI上一个一个地运行。

你可以简单的做

代码语言:javascript
复制
bundle exec rake spec:unit
bundle exec rake spec:integration
bundle exec rake spec:api

这就是我们的spec.rake的样子

代码语言:javascript
复制
  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
票数 22
EN

Stack Overflow用户

发布于 2012-04-05 13:18:53

一种方法是标记您的RSpec测试用例,如下所示:

代码语言:javascript
复制
it "should do some integration test", :integration => true do
  # something
end

当您执行您的测试用例时,请使用以下代码:

代码语言:javascript
复制
rspec . --tag integration

这将使用标记:integration => true执行所有测试用例。有关更多信息,请参阅此页面

票数 9
EN

Stack Overflow用户

发布于 2014-02-22 19:59:20

我必须按照以下方式配置我的unitfeature测试:

代码语言:javascript
复制
require 'rspec/rails'

namespace :spec do
  RSpec::Core::RakeTask.new(:unit) do |t|
    t.pattern = Dir['spec/*/**/*_spec.rb'].reject{ |f| f['/features'] }
  end

  RSpec::Core::RakeTask.new(:feature) do |t|
    t.pattern = "spec/features/**/*_spec.rb"
  end
end

必须在@KensoDev给出的答案中添加require 'rspec/rails'并将Rspec更改为RSpec

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10029250

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档