Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何运行Cucumber和RSPEC?_Ruby On Rails_Ruby On Rails 3_Rspec_Cucumber_Rspec2 - Fatal编程技术网

Ruby on rails 如何运行Cucumber和RSPEC?

Ruby on rails 如何运行Cucumber和RSPEC?,ruby-on-rails,ruby-on-rails-3,rspec,cucumber,rspec2,Ruby On Rails,Ruby On Rails 3,Rspec,Cucumber,Rspec2,现在我使用rspec进行测试。要运行rspec,我需要做的就是: 耙规格 现在我想使用Cucumber编写测试,以确保登录和注册的路径能够正确地使用Desive&Omniauth 要使用Cucumber,我需要在/features中编写测试,对吗 那么这是否意味着我需要进行测试 rake spec 然后运行另一个命令 cucumber 所以现在我必须运行两个测试框架 谢谢是的。一个是单元测试框架,另一个是高级验收测试 此外,如果您正在寻找集成测试,而不是验收测试(听起来就是这样),那么带rs

现在我使用rspec进行测试。要运行rspec,我需要做的就是:

耙规格

现在我想使用Cucumber编写测试,以确保登录和注册的路径能够正确地使用Desive&Omniauth

要使用Cucumber,我需要在/features中编写测试,对吗

那么这是否意味着我需要进行测试

rake spec
然后运行另一个命令

cucumber
所以现在我必须运行两个测试框架


谢谢

是的。一个是单元测试框架,另一个是高级验收测试


此外,如果您正在寻找集成测试,而不是验收测试(听起来就是这样),那么带rspec的普通水豚可能更适合(https://github.com/jnicklas/capybara,向下滚动至capybara+rspec)

是的,这是正确的。一般来说,我使用Rspec进行单元测试,cucumber进行集成。如果您发现RSpec为您提供了集成测试,并且您不需要编写cucumber特性来与客户机或系统分析师确定应用程序,那么cucumber可能不适合您。就我个人而言,我喜欢Cumber在集成测试中的工作方式。它感觉非常可重用,并且很容易理解测试中发生的事情。

为了解决运行2个命令的特殊性,运行autotest以在您更改规范代码或程序代码时自动运行测试,无需使用rake命令

如果使用cucumber,则运行的
AUTOFEATURE=true autotest
将依次运行rspec测试和cucumber规范

自动测试有一个很好的功能,它运行整个规范套件,但如果任何测试失败,它将只重新运行该测试,直到通过,然后再次重新运行整个测试。它还具有随机化测试顺序的附加值,以确保测试单独有效

改编自

耙子:

require 'rspec/core/rake_task'
require 'cucumber/rake/task'

RSpec::Core::RakeTask.new
Cucumber::Rake::Task.new

task :default => [:spec, :cucumber]
但我更喜欢自动运行测试