假设您添加了一个控制器和操作(例如:)story/index
,并希望通过以下方式运行功能测试
rake test:functionals
然后你发现你的同事正在处理的项目的另一部分实际上在你的功能测试发生之前在更早的地方(另一个控制器/动作)破坏了测试。
在这种情况下,您能否只运行一项功能测试,即您的测试?
假设您添加了一个控制器和操作(例如:)story/index
,并希望通过以下方式运行功能测试
rake test:functionals
然后你发现你的同事正在处理的项目的另一部分实际上在你的功能测试发生之前在更早的地方(另一个控制器/动作)破坏了测试。
在这种情况下,您能否只运行一项功能测试,即您的测试?
明智的回答
如果你的同事破坏了测试,那么他应该修复测试,或者他不应该将代码提交给 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)也许:rake test:units
2)这个链接也可以帮助你:
3)这也可能对您有所帮助:
“典型的 Rails 测试有以下几种形式:
单元(模型)这些测试模型中的业务逻辑。一个编写良好的 Rails 应用程序应该在其模型中包含大部分代码,因此您的大部分测试应该是这些。
功能(控制器) 这些测试单独的控制器操作隔离。
集成(控制器到控制器) 这些测试在多个操作和路由之间/多个操作和路由之间的状态变化,即确保当用户单击典型工作流程时事情不会完全爆炸。
Fixtures 用于保存示例模型数据,用于在测试中轻松实例化这些模型,避免手动创建模型对象的繁琐过程。
Unit/Helpers 视图中使用的这些测试助手。
换句话说,基本关系如下所示:
模型单元测试控制器功能测试视图(作为功能测试控制器到控制器集成测试的一部分)
查看可以轻松运行特定测试(或测试组)的single_test gem