Python单元测试_使用装饰器实现测试跳过和预期故障的方法
Python单元测试unittest中提供了一下四种装饰器实现测试跳过和预期故障。(使用Python2.7.13)
请查考Python手册中:
https://docs.python.org/dev/library/unittest.html
Thefollowingdecoratorsimplementtestskippingandexpectedfailures:
#以下装饰器实施测试跳过和预期故障:
@unittest.skip(原因)
Unconditionallyskipthedecoratedtest.reasonshoulddescribewhythetestisbeingskipped.
#无条件跳过装饰测试。原因应该说明为什么要跳过测试。
@unittest.skipIf(条件,原因)
Skipthedecoratedtestifconditionistrue.
#如果条件为真,跳过装饰测试。
@unittest.skipUnless(条件,原因)
Skipthedecoratedtestunlessconditionistrue.
#跳过装饰的测试,除非条件是真的。
@unittest.expectedFailure
Markthetestasanexpectedfailure.Ifthetestfailswhenrun,thetestisnotcountedasafailure.
#将测试标记为预期的失败。如果测试在运行时失败,则测试不会被视为失败。
(以上采用谷歌翻译,可能会有差异)
好了,写段代码看下,test.py,使用的Eclipse
#coding:UTF-8 importunittest fromtest.test_pprintimportuni classTest_ce(unittest.TestCase): a=16 b=10 @unittest.skip('无条件跳过') deftest_ce1(self): self.assertEqual((self.a-self.b),16) #判断是否相等 @unittest.skipIf(True==1,'条件为真则跳过') deftest_ce_2(self): self.assertFalse(self.a==self.b) #判断是否为False @unittest.skipUnless(1==1,'条件为假则跳过') deftest_ce_3(self): self.assertTrue(self.a>16) #判断是否为True @unittest.expectedFailure deftest_ce_4(self): self.assertFalse(self.a==16) @unittest.expectedFailure deftest_ce_5(self): self.assertFalse(self.a==15) if__name__=='__main__': unittest.main()
好的,运行一下
ssFxu ====================================================================== FAIL:test_ce_3(__main__.Test_ce) ---------------------------------------------------------------------- Traceback(mostrecentcalllast): File"D:\Escplise\workspace\Pytest\src\test001\CE.py",line20,intest_ce_3 self.assertTrue(self.a>16) AssertionError:Falseisnottrue ---------------------------------------------------------------------- Ran5testsin0.000s FAILED(failures=1,skipped=2,expectedfailures=1,unexpectedsuccesses=1)
好的,我们对第1行代码进行分析:
s:全称是skipped(跳过)
s:条件为真,所以也是skipped(跳过)
F:条件为真,所以忽略装饰器,执行断言代码,显然是failures(失败)
x:断言结果显然是失败的,但是这是在我们意料之中,所以是expectedfailures(预期的失败)
u:断言结果显然是pass,但是我们预计可能不通过,所以是unexpectedsuccesses(意想不到的成功)
即第13行代码所示 FAILED(failures=1,skipped=2,expectedfailures=1,unexpectedsuccesses=1)
以上这篇Python单元测试_使用装饰器实现测试跳过和预期故障的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。