Python中有多种方式进行自动化测试,主要有:
1. unittest:
- unittest是Python标准库中的测试框架。
- 我们可以通过编写测试用例来测试代码逻辑和输出是否正确。
- 测试用例要以test_开头,并继承unittest.TestCase。
例如:
import unittest
def add(a, b):
return a + b
class TestAdd(unittest.TestCase):
def test_add(self): # test方法名以test_开头
self.assertEqual(add(1, 2), 3)
def test_add_fail(self):
self.assertEqual(add(1, 2), 4) # 故意的错误测试
if __name__ == '__main__':
unittest.main() # 运行测试用例
这会运行两个测试方法,并显示一个失败一个成功。
2. pytest:
- pytest是一种更加先进的测试框架,有很多优点:
- 不需要继承TestCase。
- 有丰富的插件支持。
- 可以支持参数化测试。
- 可以支持fixture(测试夹具)。
例如:
def add(a, b):
return a + b
def test_add():
assert add(1, 2) == 3
def test_add_fail():
assert add(1, 2) == 4
def test_add_param(a, b, expected):
assert add(a, b) == expected
test_params = [(1, 2, 3), (10, 20, 30), (1, 0, 1)]
@pytest.mark.parametrize('a, b, expected', test_params)
def test_add_param_deco(a, b, expected):
assert add(a, b) == expected
我们可以使用pytest test_file.py
来运行测试。
pytest提供简洁易用的测试方式,是目前最流行的测试框架。要成为一名专业的Python工程师,掌握测试技巧和理念是必不可少的。