【发布时间】:2019-10-09 22:28:07
【问题描述】:
我正在开发一个项目,该项目包含用 minitest 编写的遗留测试。如何从测试文件中只运行一个断言?
注意:我有我的问题的答案,我稍后会发布。我把它放在这里是为了 a) 它可以使其他人受益,并且 b) 如果我忘记了我的答案,或者忘记了我已经弄清楚了,希望我自己能找到这个。并且开怀大笑。
【问题讨论】:
标签: ruby-on-rails minitest testunit
我正在开发一个项目,该项目包含用 minitest 编写的遗留测试。如何从测试文件中只运行一个断言?
注意:我有我的问题的答案,我稍后会发布。我把它放在这里是为了 a) 它可以使其他人受益,并且 b) 如果我忘记了我的答案,或者忘记了我已经弄清楚了,希望我自己能找到这个。并且开怀大笑。
【问题讨论】:
标签: ruby-on-rails minitest testunit
回答我自己的问题,以便其他人受益,如果我忘记了,希望我能找到它......
我发现了两种不同的方法来运行这些测试,以及如何指定选项。语法略有不同,具体取决于您运行它们的方式。然而,最重要的细节是:
"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。
【讨论】: