跳过测试用例
1.直接跳过某条用例
跳过装饰器下面的用例:
@unittest.skip(‘reason’)
import unittest
from UnitTest.test import Count
class TestCount(unittest.TestCase):
def test_1_add(self):
self.assertEqual(Count.add(1, 3, 6), 10)
@unittest.skip('异常') #跳过这个用例
def test_2_sub(self):
self.assertEqual(Count.sub(1, 3, 6), 8)
def test_3_div(self):
self.assertEqual(Count.div(10, 2), 5)
def test_4_mult(self):
self.assertEqual(Count.mult(1, 3, 6), 18)
if __name__ == '__main__':
unittest.main()
2.根据条件跳过测试用例
skipIf(condition,reason)
skipUnless(condition,reason)
2.1在Count中加入一个变量作为跳过时的条件
class Count:
version = 1
def add(x, y, *args):
x = x + y
for val in args:
x = x + val
return x
def sub(x, y, *args):
x = x - y
for val in args:
x = x - val
return x
def mult(x, y, *args):
x = x * y
for val in args:
x = x * val
return x
def div(x, y, *args):
x = x / y
for val in args:
x = x / val
return x
2.2跳过version==1的用例
class TestCount(unittest.TestCase):
@unittest.skipIf(Count.version == 1, 'add not test') #在Count中如果version==1,则跳过第一条用例
def test_1_add(self):
self.assertEqual(Count.add(1, 3, 6), 1)
def test_2_sub(self):
self.assertEqual(Count.sub(1, 3, 6), -8)
def test_3_div(self):
self.assertEqual(Count.div(10, 2), 5)
def test_4_mult(self):
self.assertEqual(Count.mult(1, 3, 6), 18)
3.测试结果与预期不同,不计入失败统计
@unittest.expectedFailure
class TestCount(unittest.TestCase):
@unittest.skipIf(Count.version == 1, 'add not test')
def test_1_add(self):
self.assertEqual(Count.add(1, 3, 6), 1)
@unittest.expectedFailure #预期失败
def test_2_sub(self):
self.assertEqual(Count.sub(1, 3, 6), 8)
def test_3_div(self):
self.assertEqual(Count.div(10, 2), 5)
def test_4_mult(self):
self.assertEqual(Count.mult(1, 3, 6), 18)