使用“ Rails测试”时,隐藏跳过的测试控制台输出



我检查了rails test -h,但我看不到抑制跳过测试的输出的选项。我有一些需要跳过的,很难通过输出进行涉水。老实说,我真的只想看到失败,然后在底部进行摘要。

我如何跳过/通过测试:

AM AMAIND添加:

test "my broken test" do
    skip("I know this test is broken, ignore it for now.")
do

我看到的是:

在控制台输出中,每个跳过测试以相同的方式输出 error 将是(仅标记为 SKIP)。摘要实际上是我想要的

1358 tests, 28 assertions, 0 failures, 0 errors, 1340 skips

谢谢!

我不知道是否有官方方法,但我可以想到两个解决方法。

一个是写一个自定义记者。

另一个是在testcase中制作自己的跳过功能(在test/test_helper.rb中),类似的东西:

class ActiveSupport::TestCase
  def skip!(message=nil)
    Rails.logger.warn "Skipping #{caller[1]}#{message}" # output caller line
  end
end

然后,您可以简单地调用它并以单线返回:

class SomeTest < ActiveSupport::TestCase
  test "do something" do
    return skip!("I can't do something right now 😿")
  end
end

显然,这不会注册为跳过,您必须检查一下最大的检查才能查看如何做到这一点。它将仅注册为通过测试。但是,您将能够通过格格普文件来检测所有跳过。

如果使用Minitest-Reporters Gem,您可以明确地跳过测试:

Minitest::Reporters.use!([
  Minitest::Reporters::DefaultReporter.new(detailed_skip: false),
])

最新更新