ruby-on-rails 使用'rails test'时隐藏跳过的测试控制台输出

am46iovg  于 2023-02-01  发布在  Ruby
关注(0)|答案(2)|浏览(105)

我检查了rails test -h,但是我没有看到一个选项来抑制跳过的测试的输出。我有一些需要跳过的测试,很难浏览输出。老实说,我真的只想看到失败,然后在底部看到摘要。

我如何跳过/通过测试:

我只是简单地加上:

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

我所看到的:

在控制台输出中,每个 skipped 测试的输出方式与 error 相同(只是它被标记为SKIP)。

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

谢谢!

nmpmafwu

nmpmafwu1#

我不知道是否有正式的方法,但我能想到两个变通办法。
一种是写a custom reporter
另一种方法是在TestCase(test/test_helper.rb)中创建自己的skip函数,类似于以下内容:

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查看如何做到这一点。它只会记录为通过测试。然而,你可以通过grep日志文件来检测所有跳过。

njthzxwz

njthzxwz2#

如果使用minitest-reporters gem,则可以显式抑制跳过的测试:

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

相关问题