我正在做一个用minitest编写遗留测试的项目。如何从测试文件中只运行一个断言?
注意:我的问题有答案,我稍后会发布。我把这个放在这里是为了a(它可以使其他人受益,b(如果我忘记了我的答案,或者忘记了我想通了这一点,希望我自己能找到这个。并开怀大笑。
回答我自己的问题,以便其他人可以从中受益,如果我忘记了,希望我会找到它......
我发现了两种不同的方法来运行这些测试,以及如何指定选项。语法略有不同,具体取决于您运行它们的方式。但是,最重要的细节是:
- 如果指定确切的名称,则必须在实际测试名称前面加上
"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
。