在Ruby on Rails上,如何在另一个突破时运行一个功能测试?

时间:2010-06-04 21:02:28

标签: ruby-on-rails testing functional-testing

假设您添加了一个控制器和操作(例如:story/index),并希望通过

运行功能测试
rake test:functionals

然后你发现你的同事正在进行的项目的另一部分实际上在你的功能测试开始之前在较早的地方(另一个控制器/动作)打破了测试。

在这种情况下,你可以只运行一次功能测试吗?

3 个答案:

答案 0 :(得分:10)

智慧屁股答案
如果你的同事打破了测试,那么他应该修复测试,否则他不应该将代码提交给repo。这是我们在我所从事的项目中通常拥有的主要原则。

不错的答案
试试这个

rake test:functionals TEST=test/functional/xy_test.rb

或者这个 运行一个没有rake的测试,但显式$ -loadpath也可以 这里“ruby -I directory”指定$ loadpath。否则您将无法加载测试环境并且“require test_helper”失败!

ruby -I test test/functional/xy_test.rb

答案 1 :(得分:0)

1)也许:佣金测试:单位

2)此链接也可以帮助您:

http://rake.rubyforge.org/

3)这也可以帮助你:

  

“典型的Rails测试进来了   遵循表格:

     

单元(Model)这些测试业务逻辑   在你的模型中。一个写得很好的Rails   应用程序应该有大部分   它的代码在它的模型中,所以大部分   你的测试应该是这些。

     

功能(控制器)这些测试   个人控制者的行动   隔离。

     

集成(控制器到控制器)   这些测试状态突变   在多个动作之间/之间   路由,即确保事情   用户点击时不要完全爆炸   通过典型的工作流程。

     

Fixtures用于保存示例模型   用于轻松实例化的数据   测试模型,避免繁琐   手动创建模型的过程   对象。

     

单位/助手使用这些测试助手   在观点中。

     

换句话说,基本的   关系看起来像这样:

     

模型单元测试控制器功能   测试视图(作为a的一部分)功能   测试控制器   控制器集成测试“

找到http://rails-nutshell.labs.oreilly.com/ch09.html

答案 2 :(得分:0)

查看single_test gem,这样可以轻松运行特定测试(或测试组)