Python-pytest使用unittest

发布时间:2024年01月17日

介绍:

unittest 是 Python 标准库中的测试框架,用于编写和运行单元测试。它提供了一组用于组织测试、断言和报告测试结果的类和方法。


  1. 编写测试类和方法
import unittest

class MathOperationsTest(unittest.TestCase):
    def test_addition(self):
        result = 1 + 1
        self.assertEqual(result, 2)

    def test_subtraction(self):
        result = 3 - 1
        self.assertEqual(result, 2)
  1. 运行测试
  1. 命令行方式:
python -m unittest test_module.py
  1. 测试运行器方式:
if __name__ == '__main__':
    unittest.main()
  1. 断言

使用各种断言方法来验证测试条件:

import unittest

class AssertionTest(unittest.TestCase):
    def test_assert_equal(self):
        self.assertEqual(2 + 2, 4)

    def test_assert_true(self):
        self.assertTrue(2 + 2 == 4)

    def test_assert_false(self):
        self.assertFalse(2 + 2 == 5)
  1. 测试装置

使用 setUp 和 tearDown 进行测试装置:

import unittest

class TestWithSetUpAndTearDown(unittest.TestCase):
    def setUp(self):
        # 设置测试前的准备工作
        self.value = 42

    def test_value(self):
        self.assertEqual(self.value, 42)

    def tearDown(self):
        # 清理测试后的工作
        self.value = None
  1. 测试套件
import unittest

class MathOperationsTest(unittest.TestCase):
    def test_addition(self):
        result = 1 + 1
        self.assertEqual(result, 2)

    def test_subtraction(self):
        result = 3 - 1
        self.assertEqual(result, 2)

class AssertionTest(unittest.TestCase):
    def test_assert_equal(self):
        self.assertEqual(2 + 2, 4)

    def test_assert_true(self):
        self.assertTrue(2 + 2 == 4)

    def test_assert_false(self):
        self.assertFalse(2 + 2 == 5)

if __name__ == '__main__':
    # 创建一个测试套件
    suite = unittest.TestSuite()

    # 将 MathOperationsTest 类中的测试用例添加到测试套件中
    suite.addTest(unittest.makeSuite(MathOperationsTest))

    # 将 AssertionTest 类中的测试用例添加到测试套件中
    suite.addTest(unittest.makeSuite(AssertionTest))

    # 运行测试套件
    unittest.TextTestRunner().run(suite)
文章来源:https://blog.csdn.net/feichang_notlike3/article/details/135614354
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。