Python Unittest框架如何进行复杂场景的单元测试?

2026-05-26 14:162阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计558个文字,预计阅读时间需要3分钟。

Python Unittest框架如何进行复杂场景的单元测试?

%E2%80%9C%E6%B5%8B%E8%AF%95%E5%A0%86%E7%9A%84%E7%94%A8%E9%80%94%E6%98%AF%E6%94%B6%E9%9B%86%E6%83%B3%E8%A6%81%E6%B5%8B%E8%AF%95%E7%9A%84%E6%B5%8B%E8%AF%95%E4%BE%8B%EF%BC%8C%E4%BD%BF%E7%94%A8unittest%E6%89%A7%E8%A1%8C%E8%AF%A5%E5%A0%86%E4%B8%AD%E7%9A%84%E6%B5%8B%E8%AF%95%E4%BE%8B%E2%80%9D + unittest.main() + %E5%B8%B8%E7%81%AB%E4%B8%8Bmain%E5%87%BD%E6%95%B0%E6%98%AF%E4%B8%80%E4%B8%AA%E9%BB%98%E8%AE%A4%E7%9A%84%E6%B5%8B%E8%AF%95%E5%A0%86%EF%BC%8C%E4%BC%9A%E6%94%B6%E9%9B%86%E6%89%80%E6%9C%89%E6%A8%A1%E5%9D%97%E7%9A%84%E6%B5%8B%E8%AF%95%E4%BE%8B%E2%80%9D

Test suite的用途是将测试收集想要进行测试的测试用例,以便unittest执行这些选中的测试用例。

unittest.main()通常情况下main函数其实是一个默认的test suite,它默认会收集所有模块的测试用例,然后执行它们。以如下测试用例为例,在执行单元测试时,由于已经在代码下方设置了main函数,那么运行命令可以简化为"python test_apple.py"。

import unittest
from apple import Apple


class AppleTestCases(unittest.TestCase):
def setUp(self):
self.apple = Apple()
#raise Exception("This is an exception!!!")

def test_default_apple_quantity(self):
self.assertEqual(self.apple.quantity(),200,'default quantity is wrong.')

def test_re_fill_quantity(self):
self.apple.re_fill(500)
self.assertEqual(self.apple.quantity(),500,'wrong quantity after re-fill.')

def tearDown(self):
print("The testing is done.")


if __name__ == '__main__':
unittest.main()

定制化测试集合在实际项目中,可能需要定制化测试集合的情况比较多,因为正常项目中一个模块(功能模块)的测试用例可能有很多,而有时只需要执行部分即可。

首先可以先定义一个test suite函数,具体如下所示:

def suite1():
suite = unittest.TestSuite()
suite.addTest(AppleTestCases('test_default_apple_quantity'))
return suite

其次在执行这些测试用例时,也需要添加类似如下代码,去调用TestSuite实例。

if __name__ == '__main__':
runner = unittest.TextTestRunner()
runner.run(suite1())

执行结果如下,实现了定制化Test Suite的目的。

如果大家想掌握第一手的资讯更新,请关注公众号“测试DAO”。

Python Unittest框架如何进行复杂场景的单元测试?

本文共计558个文字,预计阅读时间需要3分钟。

Python Unittest框架如何进行复杂场景的单元测试?

%E2%80%9C%E6%B5%8B%E8%AF%95%E5%A0%86%E7%9A%84%E7%94%A8%E9%80%94%E6%98%AF%E6%94%B6%E9%9B%86%E6%83%B3%E8%A6%81%E6%B5%8B%E8%AF%95%E7%9A%84%E6%B5%8B%E8%AF%95%E4%BE%8B%EF%BC%8C%E4%BD%BF%E7%94%A8unittest%E6%89%A7%E8%A1%8C%E8%AF%A5%E5%A0%86%E4%B8%AD%E7%9A%84%E6%B5%8B%E8%AF%95%E4%BE%8B%E2%80%9D + unittest.main() + %E5%B8%B8%E7%81%AB%E4%B8%8Bmain%E5%87%BD%E6%95%B0%E6%98%AF%E4%B8%80%E4%B8%AA%E9%BB%98%E8%AE%A4%E7%9A%84%E6%B5%8B%E8%AF%95%E5%A0%86%EF%BC%8C%E4%BC%9A%E6%94%B6%E9%9B%86%E6%89%80%E6%9C%89%E6%A8%A1%E5%9D%97%E7%9A%84%E6%B5%8B%E8%AF%95%E4%BE%8B%E2%80%9D

Test suite的用途是将测试收集想要进行测试的测试用例,以便unittest执行这些选中的测试用例。

unittest.main()通常情况下main函数其实是一个默认的test suite,它默认会收集所有模块的测试用例,然后执行它们。以如下测试用例为例,在执行单元测试时,由于已经在代码下方设置了main函数,那么运行命令可以简化为"python test_apple.py"。

import unittest
from apple import Apple


class AppleTestCases(unittest.TestCase):
def setUp(self):
self.apple = Apple()
#raise Exception("This is an exception!!!")

def test_default_apple_quantity(self):
self.assertEqual(self.apple.quantity(),200,'default quantity is wrong.')

def test_re_fill_quantity(self):
self.apple.re_fill(500)
self.assertEqual(self.apple.quantity(),500,'wrong quantity after re-fill.')

def tearDown(self):
print("The testing is done.")


if __name__ == '__main__':
unittest.main()

定制化测试集合在实际项目中,可能需要定制化测试集合的情况比较多,因为正常项目中一个模块(功能模块)的测试用例可能有很多,而有时只需要执行部分即可。

首先可以先定义一个test suite函数,具体如下所示:

def suite1():
suite = unittest.TestSuite()
suite.addTest(AppleTestCases('test_default_apple_quantity'))
return suite

其次在执行这些测试用例时,也需要添加类似如下代码,去调用TestSuite实例。

if __name__ == '__main__':
runner = unittest.TextTestRunner()
runner.run(suite1())

执行结果如下,实现了定制化Test Suite的目的。

如果大家想掌握第一手的资讯更新,请关注公众号“测试DAO”。

Python Unittest框架如何进行复杂场景的单元测试?