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



我正在做一个用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

相关内容

最新更新