jenkins集成python的单元测试 怼烎@ 2022-03-25 05:43 294阅读 0赞 参考:[https://blog.csdn.net/lashou\_tech/article/details/52997787][https_blog.csdn.net_lashou_tech_article_details_52997787] **前提**:配置好python环境,需要用到pytest框架。 pytest是Python的一种单元测试框架,与python自带的unittest测试框架类似,但是比unittest框架使用起来更简洁,效率更高。 Pytest编写测试用例规则: 1)测试文件以test\_开头(以\_test结尾也可以) 2)测试类以Test开头,并且不能带有 init 方法 3)测试函数以test\_开头 4)断言使用基本的assert即可 **目录** 安装pytest 单元测试实例 dos命令行运行结果 安装pytest-html(得到html报告) 构建 构建后操作 节点管理 -------------------- ## 安装pytest ## 使用pip命令进行安装,到cmd中输入后出现:'pip' 不是内部或外部命令,也不是可运行的程序或批处理文件。在环境变量PATH中添加Python安装目录下的Scripts文件路径即可解决,如:D:\\soft\\Python3.7.2\\Scripts 输入安装命令:pip install -U pytest ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3d1c3RfbGg_size_16_color_FFFFFF_t_70][] 验证安装成功命令:py.test –version ![20190118200223484.png][] ## 单元测试实例 ## mathfunc.py def add(a, b): return a+b def minus(a, b): return a-b def multi(a, b): return a*b def divide(a, b): return a/b test\_mathfunc.py # -*- coding: utf-8 -*- import unittest from mathfunc import * class TestMathFunc(unittest.TestCase): """Test mathfuc.py""" def test_add(self): """Test method add(a, b)""" self.assertEqual(3, add(1, 2)) self.assertNotEqual(3, add(2, 2)) def test_minus(self): """Test method minus(a, b)""" self.assertEqual(1, minus(3, 2)) def test_multi(self): """Test method multi(a, b)""" self.assertEqual(6, multi(2, 3)) def test_divide(self): """Test method divide(a, b)""" self.assertEqual(2, divide(6, 3)) self.assertEqual(2.5, divide(5, 2)) if __name__ == '__main__': unittest.main() ## dos命令行运行结果 ## 以下结果为将 self.assertEqual(2.5, divide(5, 2))改为 self.assertEqual(2, divide(5, 2))的运行结果 ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3d1c3RfbGg_size_16_color_FFFFFF_t_70 1][] ## 安装pytest-html(得到html报告) ## ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3d1c3RfbGg_size_16_color_FFFFFF_t_70 2][] ## 构建 ## 执行windows批处理命令 ![20190118200409677.png][] ## 构建后操作 ## Publish HTML reports和Publish Junit test result report ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3d1c3RfbGg_size_16_color_FFFFFF_t_70 3][] ## 节点管理 ## 使用pytest命令时若未配置环境变化会出现问题,此时配置好jenkins的环境变量重启jenkins即可生效。 ![20190118200426599.png][] 配置环境变量 ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3d1c3RfbGg_size_16_color_FFFFFF_t_70 4][] 配置好后点击立即构建即可,可以得到报告 ![20190118200453416.png][] html报告 ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3d1c3RfbGg_size_16_color_FFFFFF_t_70 5][] 测试结果 ![20190118200506142.png][] workspace的report目录下会有html文件和xml文件。 ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3d1c3RfbGg_size_16_color_FFFFFF_t_70 6][] [https_blog.csdn.net_lashou_tech_article_details_52997787]: https://blog.csdn.net/lashou_tech/article/details/52997787 [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3d1c3RfbGg_size_16_color_FFFFFF_t_70]: /images/20220325/c8f500bf4f32434ab434ce47e03e2d71.png [20190118200223484.png]: /images/20220325/b26a5d79e9924b2db7dd4bb823cbd382.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3d1c3RfbGg_size_16_color_FFFFFF_t_70 1]: /images/20220325/9692660e59794bff94ed2d4b4369d044.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3d1c3RfbGg_size_16_color_FFFFFF_t_70 2]: /images/20220325/9f706009a17d457db703cbc4f7ed26ee.png [20190118200409677.png]: /images/20220325/90f703f87ecc4bfbadc3d9f2147b6034.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3d1c3RfbGg_size_16_color_FFFFFF_t_70 3]: /images/20220325/17f940265ec34d87b245b14891f84892.png [20190118200426599.png]: /images/20220325/220d3b67a87d4868b6274bf7757fb56e.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3d1c3RfbGg_size_16_color_FFFFFF_t_70 4]: /images/20220325/5d8e11a923d546a08dff0d6385ef576d.png [20190118200453416.png]: /images/20220325/d4e0893cdf5443d08d546a7d928d2ff9.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3d1c3RfbGg_size_16_color_FFFFFF_t_70 5]: /images/20220325/dc27a6dac6ad4aa3addad2d7a7d6fc92.png [20190118200506142.png]: /images/20220325/e51fcf26768b401392ec7889cf13b65c.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3d1c3RfbGg_size_16_color_FFFFFF_t_70 6]: /images/20220325/102d7e01aa8949f3a1f9fb41b23edf26.png
还没有评论,来说两句吧...