在默认情况下,unittest 会自动测试每一个测试用例(以 test 开头的方法),但如果希望临时跳过某个测试用例,则可以通过如下两种方式来实现:
下面程序示范了使用 @unittest.skip 装饰器来跳过测试用例(skip_test.py):
import unittest
from hello import *
class TestHello(unittest.TestCase):
# 测试say_hello函数
def test_say_hello(self):
self.assertEqual(say_hello() , "Hello World.")
# 测试add函数
@unittest.skip('临时跳过test_add')
def test_add(self):
self.assertEqual(add(3, 4) , 7)
self.assertEqual(add(0, 4) , 4)
self.assertEqual(add(-3, 0) , -3)
第 10 行代码使用 @unittest.skip 装饰器跳过了 test_add() 测试方法。使用如下命令来运行该测试程序:
可以看到如下输出结果:
在上面输出结果的第一行可以看到 s.,这表明程序运行了两个测试用例,s 代表跳过了第一个测试用例,点(.)代表第二个测试用例通过。
此外,程序也可以使用 TestCase 的 skipTest() 方法跳过测试用例。例如,如下程序示范了使用 skipTest() 方法来跳过测试用例(skip_test1.py):
import unittest
from hello import *
class TestHello(unittest.TestCase):
# 测试say_hello函数
def test_say_hello(self):
self.assertEqual(say_hello() , "Hello World.")
# 测试add函数
def test_add(self):
self.skipTest('临时跳过test_add')
self.assertEqual(add(3, 4) , 7)
self.assertEqual(add(0, 4) , 4)
self.assertEqual(add(-3, 0) , -3)
第 11 行代码使用 self.skipTest() 方法跳过了测试方法(test_add())。使用如下命令来运行该测试程序:
上面命令使用了 -v 选项来生成更详细的测试报告。运行上面命令,可以看到如下输出结果:
从上面的输出结果可以看到,unittest 测试跳过了 test_add() 方法,并显示了跳过的原因:'临时跳过test_add'(如果不使用 -v 选项,将不会输出该原因)。