我可以在一个文件中运行所有测试:
rake test TEST=path/to/test_file.rb
但是,如果我只想在该文件中运行一个测试,我该怎么做呢?
我正在寻找类似的功能:
rspec path/to/test_file.rb -l 25
我可以在一个文件中运行所有测试:
rake test TEST=path/to/test_file.rb
但是,如果我只想在该文件中运行一个测试,我该怎么做呢?
我正在寻找类似的功能:
rspec path/to/test_file.rb -l 25
当前回答
命令应该是:
% rake test TEST=test/test_foobar.rb TESTOPTS="--name=test_foobar1 -v"
其他回答
这是测试中字符串名称定义中困扰我的问题之一。
当你有:
def test_my_test
end
你总是知道你的测试是如何命名的,所以你可以像这样执行它:
ruby my_test -n test_my_test
但当你有这样的东西:
it "my test" do
end
你永远不知道这个测试在内部是如何命名的,所以你不能直接使用-n选项。
要了解这个测试在内部是如何命名的,您只有一个选择:执行整个文件以尝试在日志中查找。
我的解决方法是(暂时地)在测试名中添加一些非常独特的东西,比如:
it "my test xxx" do
end
然后使用'-n'形参的RegEx版本,例如:
ruby my_test.rb -n /xxx/
我在Rails版本4.2.11.3和Ruby版本2.4.7p357
下面一个对我有用。
ruby -Itest <relative_minitest_file_path> --name /<test_name>/
安装gem minest -focus并使用关键字focus on test/spec,如下所示,只运行特定的测试。
focus
def test
end
focus
it "test" do
end
这将不需要传递任何命令行参数。
你可以通过——name来运行一个测试,通过它的名字或者它名字中的一个数字:
-n, --name PATTERN Filter run on /regexp/ or string.
例如:
$ ruby spec/stories/foo_spec.rb --name 3
FAIL (0:00:00.022) test_0003_has foo
Expected: "foo"
Actual: nil
这个标志被记录在Minitest的README中。
我正在寻找类似的功能: / / test_file rspec路径。Rb -l 25
有一种宝石正是这样做的:最小行。
gem install minitest-line
ruby test/my_file -l 5
从https://github.com/judofyr/minitest-line minitest-line