如何删除跳过测试的详细输出?

How to remove verbose output for skipped tests?

背景: 我有一堆测试(20+),我无法在我的工作机器上执行,因为它们需要一个工作的 CUDA 环境。 所以为了避免错误,我通过 unittest.skipIf.

使它们成为有条件的

抽象掉细节,我的测试模块如下所示:

@unittest.skipIf(os.environ.get('TEST_FANCY') != 'yes', "For fancy tests, set TEST_FANCY='yes'")
class FancyTests(unittest.TestCase):
    def test_a(self):
        self.assertEqual(1+1, 2)

    def test_b(self):
        self.assertEqual(1+2, 3)

现在,当我 运行 green 的测试时,每个跳过的测试都会以冗长的方式报告,极大地污染了输出,例如:

..ss.

Skipped test.test_fancy.FancyTests.test_a - For fancy tests, set TEST_FANCY='yes'

Skipped test.test_fancy.FancyTests.test_b - For fancy tests, set TEST_FANCY='yes'

Ran 5 tests in 0.355s using 4 processes

OK (passes=3, skips=2)

我希望输出只是总结结果,类似于标准单元测试 运行ner 默认情况下所做的,即:

..ss.

Ran 5 tests in 0.355s using 4 processes

OK (passes=3, skips=2)

虽然 green 默认报告个别跳过的测试,但它允许通过 -k 抑制这些测试。来自 docs:

  -k, --no-skip-report  Don't print the report of skipped tests after testing
                        is done. Skips will still show up in the progress
                        report and summary count.