如何使用unittest和pytest进行python脚本的单元测试 1. 关于unittest和pytestunittest是python内置的支持单元测试的模块他提供了核心类TestCase让单元测试代码的编写不再是从0开始不再是作坊式而是标准化模板化工厂化。pytest是第三方支持单元测试的扩展库他和unittest配合可以使你在为一个新的源码文件编写测试代码时不用手动定义程序入口以及要执行哪些表示测试的函数或类。你只需按照一个”套路“写测试代码它会帮你运行测试汇总测试结果覆盖率通过率等等2. 单元测试代码的编写假设我有一个名为”X.py的脚本文件其中定义了一个名为A的类我想对A中的方法add和mult进行测试classA:deffun(a:int,b:int)-int:returnabdefmulti(a:int,b:int)-int:returna*b则推荐的编写测试A的流程如下2.1 新建一个名为test_A.py文件这个文件用于存放对A这个类进行单元测试的代码。一般来说建议把你项目中所有测试模块文件都放到项目根目录下的tests目录中便于维护。2.2 在test_A.py文件中定义测试类继承unittest.TestCase)fromunittestimportTestCaseclassTestA(TestCase):defsetUp(self): 所有以test_开头的方法执行之前都会调用该方法通常在这个方法中创建一个或若干 你要测试的类的实例 ...self.obj_aA(...)...deftest_add(self):resultself.obj_a.add(3,5)self.assertEqual(result,8)#检测结果是否为期望值8若不是该测试方法不通过deftest_multi(self):resultself.obj_a.multi(4,5)self.assertEqual(result,20)#功能与上类似TestCase还提供了很多其他以assert为前缀的方法满足我们将实际运行结果与期望值比较的需求。2.3 运行测试代码文件查看测试结果如果不使用pytest扩展库你还需要写一段样板代码,类似如下defmain():...test_aTestA()test_a.test_add()test_a.test_multi()...这令人烦恼。好在pytest让你可以省去这个麻烦只要你安装好了pytest那么可以采取两种方法运行测试方法1命令行运行pytest执行单元测试方法2在pycharm环境执行单元测试2.3.1 在命令行下允许pytest单元测试命令行下进入tests目录执行如下命令pytest即可看到所有以test_开头的方法或函数的执行过程及结果。记住最好是虚拟环境下安装包括pytest在内的各种扩展库。2.3.2 在pycharm IDE下运行测试这个非常方便打开测试脚本文件单击下图所示的运行按钮即可出现测试结果。3.对pytest最新功能的理解–进阶从这里开始这一节是纠正上述认知层面的误差。完全可以把它看做是全新的框架它完全独立于unittest,是一个全新的单元测试框架完全可以不用unittest, 完全可以更轻松更游刃有余想了解它进一步学习so easy