如果另一个测试失败则跳过一个测试

时间:2015-12-08 23:49:38

标签: python-unittest

我正在编写一些依赖于外部二进制文件的测试。有一个确保binary的测试用例存在且功能似乎很有用。我想要多次测试,表达:

  • binary找到subprocess.Popen
  • 可以做基本的X吗?
  • 可以做基本的Y吗?

如果第一个测试失败,我希望模式跳过基本测试XY。在同一个TestCase中测试几个二进制文件也是一件好事,它们具有不同类型的XY

有些方法浮现在脑海中:

  • 使用test_X()装饰test_Y()@unittest.skipIf(basic failed),方法是检查TestResults或设置标记
  • 在失败时test_basic()致电TestResults.addSkip(test_binary_X)(但这似乎没有曝光)
  • test_basic()放入一个TestCase,将其他人放入另一个
  • test_basic()作为setUp()的一部分,以便为XY
  • 分别运行

Unittest不会按照书面顺序运行测试,因此可能难以确保顺序。

# Something like:
class TestBasics(unittest.TestCase):
    test_basic(self):
        try:
            subprocess.Popen(["binary"], stdout=None, stderr=None)
        catch OsError as e:
            # fail depending on the error

    @unittest.skipIf( test binary in path failed )
    test_X(self):
        # assert

    @unittest.skipIf( test binary in path failed )
    test_Y(self):
        # assert

0 个答案:

没有答案