标签:dfa obj ssm cep 用例 ble dem sts 嵌套
unittest框架有4个重要概念:test fixture / test case / test suite / test runner
import unittest
class DemoTest(unittest.TestCase):
@classmethod
def setUpClass(cls):
print(‘call class start‘)
def setUp(self):
print(‘call setUp‘)
def tearDown(self):
print(‘call tearDown‘)
def test_demo(self):
print(‘this is a test‘)
@classmethodd
def tearDownClass(cls):
print(‘end class‘)
其中setUpClass和tearDownClass每个测试类均只执行一次
setUp和tearDown每个test的测试用例均会执行一次
code | compare |
---|---|
assertEqual(a,b) | a==b |
assertNotEqual(a,b) | a!=b |
assertTrue(x) / assertFalse(x) | bool(x) is True/False |
assertIs(a,b)/IsNot(a,b) | a is b/ a is not b |
assertIsNone(x)/IsNotNone | is None / is not None |
assertIn(a,b) / NotlN(a,b) | a in b/ a not in b |
assertIsInstance(a,b) | isinstance(a.b) |
assertNotIsnstance(a,b) | not isinstance(a,b) |
注意:is是判断地址是否相等,而==是判断内容是否一致(注意可变对象与不可变对象的地址区别)
抛出异常:assertRaises(ValueError,self.object,var1,var2)
参数一为抛出的异常,参数二为异常的调用对象,后面为传递的参数
此断言抛出异常,如果没有抛出异常,则为测试失败
decorator | description |
---|---|
@unittest.skip(reason) | 跳过此测试(方法) |
@unittest.skipIf(condition,reason) | condition=True,skip test |
@unittest.skipUnless(condition,reason) | condition=False,skip test |
@unittest.expectedFailure | if pass->test fail else test success |
exception unittest.SkipTest(reason) | rasie expection to skip test |
# 使用用例组合进行套测试
suite = unittest.TestSuite()
suite.addTest(Class(method))
suite.addTest(Class(method1))
# 可以利用列表进行批量添加,注意,method均为字符串类型
suite.addTests([Class(method1),Class(method2)])
# 创建运行器对象->对象调用组合套进行run
runner = unittest.TextTestRunner(verbosity=2)
runner.run(suite)
# 使用加载器
loader = unittest.TestLoader()
tests1 = loader.loadTestsFromName(‘dir.Class‘)
tests2 = loader.loadTestsFromName(‘dir.Class‘)
suite.addTests([tests1,tests2])
runner = unittest.TextTestRunner(verbosity=2)
runner.run(suite)
# 写入文件的方法
with open(‘filename.txt‘,‘w+‘) as f:
runner = unittest.TextTestRunner(stream=f,verbosity=2)
runner.run(suite)
标签:dfa obj ssm cep 用例 ble dem sts 嵌套
原文地址:https://www.cnblogs.com/WheelCode/p/12828179.html