Python unittest跳过测试用例(2种方法,附带实例分析)
在默认情况下,unittest 会自动测试每一个测试用例(以 test 开头的方法),但如果希望临时跳过某个测试用例,则可以通过如下两种方式来实现:
下面程序示范了使用 @unittest.skip 装饰器来跳过测试用例(skip_test.py):
此外,程序也可以使用 TestCase 的 skipTest() 方法跳过测试用例。例如,如下程序示范了使用 skipTest() 方法来跳过测试用例(skip_test1.py):
- 使用 skipXxx 装饰器来跳过测试用例。unittest 一共提供了 3 个装饰器,分别是 @unittest.skip(reason)、@unittest.skipIf(condition, reason) 和 @unittest.skipUnless(condition, reason)。其中 skip 代表无条件跳过,skipIf 代表当 condition 为 True 时跳过;skipUnless 代表当 condition 为 False 时跳过。
- 使用TestCase 的 skipTest() 方法来跳过测试用例。
下面程序示范了使用 @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() 测试方法。使用如下命令来运行该测试程序:
python -m unittest skip_test.py
可以看到如下输出结果:
s.
----------------------------------------------------------------------
Ran 2 tests in 0.000s
OK (skipped=1)
此外,程序也可以使用 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())。使用如下命令来运行该测试程序:
python -m unittest -v skip_test1.py
上面命令使用了 -v 选项来生成更详细的测试报告。运行上面命令,可以看到如下输出结果:
test_add (skip_test2.TestHello) ... skipped '临时跳过test_add'
test_say_hello (skip_test2.TestHello) ... ok
----------------------------------------------------------------------
Ran 2 tests in 0.000s
OK (skipped=1)
所有教程
- socket
- Python基础教程
- C#教程
- MySQL函数
- MySQL
- C语言入门
- C语言专题
- C语言编译器
- C语言编程实例
- GCC编译器
- 数据结构
- C语言项目案例
- C++教程
- OpenCV
- Qt教程
- Unity 3D教程
- UE4
- STL
- Redis
- Android教程
- JavaScript
- PHP
- Mybatis
- Spring Cloud
- Maven
- vi命令
- Spring Boot
- Spring MVC
- Hibernate
- Linux
- Linux命令
- Shell脚本
- Java教程
- 设计模式
- Spring
- Servlet
- Struts2
- Java Swing
- JSP教程
- CSS教程
- TensorFlow
- 区块链
- Go语言教程
- Docker
- 编程笔记
- 资源下载
- 关于我们
- 汇编语言
- 大数据
- 云计算
- VIP视频