对于使用Jenkins的项目,我希望能够运行Python单元测试。这些测试包含与嵌入式设备的交互。结果应该报告给詹金斯。
我当前的设置(使用python 2.7)看起来如下
|
| helperModules
|-- customlogger.py
|-- settings.py
|-- serial.py
| tests
|-- test_login
|-- test_communicate_serial
| start.py
在根目录中,我有一个名为start.py的文件,该文件初始化一些设置,如自定义记录器,并在运行单元测试之前加载一些常规设置。测试本身位于目录测试中,测试目前基于Python的unittest,并由start.py执行。
由于我想运行测试并为Jenkins生成可读的报告,我想知道我应该采取哪些步骤。使用py.test,nose还是xmlrunner?由于鼻子可能会停止维持,因此不是首选。我应该使用py.test,我是否需要调整我的设置并尝试删除start.py。我在start.py中设置的日志记录对于调试是必要的,所以如果我需要将它放在测试用例中来替换它,它将改变我当前的设计,但是这个日志记录是必需的。
很好奇你的想法是什么,你将如何继续。
答案 0 :(得分:0)
在帖子之后,我开始尝试使用pytest并将其集成到当前的start.py。
中import pytest
.
.
pytest.main("--junitxml=\"report\test.xml\"")
当所有设置完成后,我使用参数调用此pytest.main以生成xml文件。它会自动发现我的单元测试并执行它们。
看起来集成很简单,仍然保持与我的设置的兼容性。希望这个答案也可以帮助别人。
另一个优点是我也可以运行
python -m pytest --junitxml=test.xml
从命令行当然,在运行测试时不会进行日志记录的设置,但运行的测试可能是一个不错的功能。