您如何仅使用rails Test :: Unit或minitest运行一个测试断言?

时间:2019-10-09 22:28:07

标签: ruby-on-rails minitest testunit

我正在一个项目,该项目具有用minitest编写的旧式测试。您如何只在测试文件中运行一个断言?

注意:我有我的问题的答案,我会在稍后发布。我将其放在此处,以便a)可以使他人受益,以及b)如果我忘记了答案,或者忘记了我已经弄清楚了这一点,希望自己能找到。并笑个好吧。

1 个答案:

答案 0 :(得分:1)

回答我自己的问题,以便其他人可以受益,如果我忘记了,希望我能找到它...

我发现了两种不同的方式来运行这些测试,以及如何指定选项。语法略有不同,具体取决于您如何运行它们。但是,最重要的细节是这些:

  • 如果您指定确切的名称,则必须在实际的测试名称前加上"test: ",并在其后加上". "-这两个尾随的空格都很关键
  • 您可以提供正则表达式,它会将/whatever/形式的选项识别为正则表达式
  • 选项的名称为-n--name

以下是从单个测试文件运行单个断言的两种方法:

bundle exec ruby -Itest path/to_test.rb '--name test_: the exact test name as discovered by running with -v. '

bundle exec rake test TEST=path/to_test.rb TESTOPTS="--name 'test_: the exact test name as discovered by running with -v. '"

以下是使用正则表达式的外观:

bundle exec rake test TEST=path/to_test.rb TESTOPTS="--name '/test name as discovered/'"

请注意,当然存在多种处理引号/转义的方法,似乎您可以使用-n=value之外的-n value