【问题标题】:Globbing doesn't work with Minitest - Only one file is runGlobbing 不适用于 Minitest - 仅运行一个文件
【发布时间】:2012-08-21 04:48:31
【问题描述】:

我已将所有规格放在specs/*.rb

但是,当我使用ruby spec/**/*_spec.rb 运行 Minitest 时,只运行了一个文件。

什么给了?

【问题讨论】:

    标签: ruby ruby-on-rails-3 minitest


    【解决方案1】:

    这不是 minitest 特定的,而是 Ruby。您正在有效地运行一个 ruby​​ 程序,它对正在运行的程序一无所知。

    Ruby 不支持同时运行多个文件 afaik,因此如果您想获得类似的结果,您可以尝试以下操作:

    for file in spec/**/*_spec.rb; do ruby $file; done
    

    更新:对于您想要的内容,您可能应该按照here的描述创建一个 Rake 任务@

    【讨论】:

    • 谢谢奥斯卡。我检查了那个链接。我想直接运行的原因是因为运行 rake test 与上面的建议相比似乎超级慢。我试图将它放在lib/tasks/minitest.rake 并运行rake test,它花了很长时间。对此有任何想法。
    • 这取决于您在 Rake 任务中加载的内容。 Rake 本身很快。
    【解决方案2】:

    您可以使用testrbl 第三方 gem 在命令行上运行多个 Minitest 文件。您还可以使用 maxitest 扩展中的 mtest bin。

    在 bash 中使用 for 循环会为您通过的每个测试产生加载应用程序/库的开销。如果您只有 10 个测试,并且您正在测试一个启动需要 5 秒的 Rails 应用程序,那么这完全是不必要的加载时间。

    【讨论】:

      猜你喜欢
      • 2015-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多