在 nose 中抑制特定类型的异常

Suppress a specific type of exceptions in nose

我为我最新的 Python 项目设置了一个 CI 管道(Gitlab CI 如果重要的话),并为我仍然想实现的东西添加了几个测试用例。在每个测试用例中,我都会提出一个 NotImplementedError,因为它还没有实现。

import unittest

class GenericTest(unittest.TestCase):

    def test_stuff(self):
        """I'll fill this in when I come around to it."""
        raise NotImplementedError

一般来说,我希望这些测试失败,因为它们还不能正常工作。但是,当我推送到我的存储库并且测试在 CI 系统上是 运行 时,我想跳过这些测试。我已经知道他们会 'fail' 并且他们掩盖了实际失败的测试。

有没有办法抑制这些异常,或特定类型的异常(如IKnowThisWillFailError),以便受影响的测试不计入'failed'?

try:
    # code
except IKnowThisWillFailError:
    pass
except:
    # catch

import unittest

class GenercTest(unittest.TestCase):

    def test_stuff(self):
        """I'll fill this in when I come around to it."""
        raise unittest.SkipTest("IKnowThisWillFail")

您的 CI 系统可能可以区分跳过和失败的测试