我正在编写一些依赖于外部二进制文件的测试。有一个确保binary
的测试用例存在且功能似乎很有用。我想要多次测试,表达:
binary
找到subprocess.Popen
?如果第一个测试失败,我希望模式跳过基本测试X
和Y
。在同一个TestCase中测试几个二进制文件也是一件好事,它们具有不同类型的X
和Y
。
有些方法浮现在脑海中:
test_X()
装饰test_Y()
和@unittest.skipIf(basic failed)
,方法是检查TestResults
或设置标记test_basic()
致电TestResults.addSkip(test_binary_X)
(但这似乎没有曝光)test_basic()
放入一个TestCase
,将其他人放入另一个test_basic()
作为setUp()
的一部分,以便为X
和Y
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