相关文章推荐
@unittest.skip ( 'skipped test' ) def test_1 ( self ): self . fail ( 'should have failed!' ) @unittest.skipIf ( os . name == 'posix' , 'Not supported on Unix' ) def test_2 ( self ): import winreg @unittest.skipUnless ( platform . system () == 'Darwin' , 'Mac specific test' ) def test_3 ( self ): self . assertTrue ( True ) @unittest.expectedFailure def test_4 ( self ): self . assertEqual ( 2 + 2 , 5 ) if __name__ == '__main__' : unittest . main ()

如果你在Mac上运行这段代码,你会得到如下输出:

bash % python3 testsample.py -v
test_0 (__main__.Tests) ... ok
test_1 (__main__.Tests) ... skipped 'skipped test'
test_2 (__main__.Tests) ... skipped 'Not supported on Unix'
test_3 (__main__.Tests) ... ok
test_4 (__main__.Tests) ... expected failure
----------------------------------------------------------------------
Ran 5 tests in 0.002s
OK (skipped=2, expected failures=1)

skip() 装饰器能被用来忽略某个你不想运行的测试。 skipIf()skipUnless() 对于你只想在某个特定平台或Python版本或其他依赖成立时才运行测试的时候非常有用。 使用 @expected 的失败装饰器来标记那些确定会失败的测试,并且对这些测试你不想让测试框架打印更多信息。

忽略方法的装饰器还可以被用来装饰整个测试类,比如:

@unittest.skipUnless(platform.system() == 'Darwin', 'Mac specific tests')
class DarwinTests(unittest.TestCase):
 
推荐文章