当前位置:  开发笔记 > 后端 > 正文

运行单轨单元/功能测试

如何解决《运行单轨单元/功能测试》经验,为你挑选了4个好方法。

如题.

红宝石测试/函/ whatevertest.rb不工作,这需要我所有更换require 'test_helper'require File.dirname(__FILE__) + '/../test_helper'.由于某些原因,大多数测试模板都存在这样的问题,所以我宁愿看看是否存在可以绕过它的黑客攻击.



1> user664833..:

以下答案基于:如何从rails测试套件运行单个测试?(堆栈溢出)

但非常简短,这是答案:

ruby -I test test/functional/whatevertest.rb

对于特定 functional测试,请运行:

ruby -I test test/functional/whatevertest.rb -n test_should_get_index

只需将下划线放在测试名称中的空格位置(如上所示),或者引用标题如下:

ruby -I test test/functional/whatevertest.rb -n 'test should get index'

请注意,对于unit测试只需更换functionalunit在上面的例子.如果您使用bundler管理应用程序的gem依赖项,则必须bundle exec按如下方式执行测试:

bundle exec ruby -I test test/unit/specific_model_test.rb
bundle exec ruby -I test test/unit/specific_model_test.rb -n test_divide_by_zero
bundle exec ruby -I test test/unit/specific_model_test.rb -n 'test divide by zero'

最重要的是,请注意,-n切换的参数是测试的名称,并且前面加上"test"一词,带有空格或下划线,具体取决于您是否引用了名称.原因是这test是一种方便的方法.以下两种方法是等效的:

test "should get high" do
  assert true
end

def test_should_get_high
  assert true
end

...并且可以执行以下一操作(它们是等效的):

bundle exec ruby -I test test/integration/misc_test.rb -n 'test should get high'
bundle exec ruby -I test test/integration/misc_test.rb -n test_should_get_high


这在Rails 3.0.7中对我不起作用.它运行0测试.

2> 小智..:

试试这个:

ruby -Ilib:test test/functionals/whatevertest.rb


我实际上运行它:ruby -I test test/functional/whatevertest.rb但它最终是同样的事情.

3> tvanfosson..:

在Linux上?为什么不试试(cd test && ruby functionals/whatevertest.rb).注意,括号很重要,否则您当前的目录将更改为子目录.它的作用是fork另一个shell,更改到其中的子目录,然后运行测试.



4> Swanand..:

如果你在Rails 4上,那么rake支持文件/目录参数.例:

rake test test/unit/user_test.rb
rake test test/unit

推荐阅读
农大军乐团_697
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有