【问题标题】:How do you run just one test assertion with rails Test::Unit or minitest?如何使用 rails Test::Unit 或 minitest 只运行一个测试断言?
【发布时间】:2019-10-09 22:28:07
【问题描述】:

我正在开发一个项目,该项目包含用 minitest 编写的遗留测试。如何从测试文件中只运行一个断言?

注意:我有我的问题的答案,我稍后会发布。我把它放在这里是为了 a) 它可以使其他人受益,并且 b) 如果我忘记了我的答案,或者忘记了我已经弄清楚了,希望我自己能找到这个。并且开怀大笑。

【问题讨论】:

    标签: ruby-on-rails minitest testunit


    【解决方案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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多