Python 单元测试 unittest
unittest 是 Python 标准库中的测试框架。
1. 基本结构
import unittest
class TestMath(unittest.TestCase):
def test_add(self):
self.assertEqual(1 + 1, 2)
def test_divide(self):
self.assertRaises(ZeroDivisionError, lambda: 1/0)
if __name__ == '__main__':
unittest.main()
2. 常用断言
self.assertEqual(a, b)
self.assertNotEqual(a, b)
self.assertTrue(x)
self.assertFalse(x)
self.assertIsNone(x)
self.assertIsNotNone(x)
self.assertIn(x, list)
self.assertIsInstance(x, type)
3. setUp 和 tearDown
class TestExample(unittest.TestCase):
def setUp(self):
self.data = load_test_data()
def tearDown(self):
clean_up(self.data)
4. 运行测试
python -m unittest
python -m unittest test_module
python -m unittest test_module.TestClass
python -m unittest -v
5. pytest(更推荐)
pip install pytest
# 运行
pytest
pytest -v
pytest -k test_name
测试是保证代码质量的关键。