将ansible lint输出转换为junit有效的xml测试结果文件
ansible-lint-to-junit-xml的Python项目详细描述
将ansible lint输出转换为junit有效的xml测试结果文件。
快速启动
在首选python环境中安装ansible-lint-to-junit-xml。
pip install ansible-lint-to-junit-xml
在所需文件上运行ansible-lint,并通过管道连接到ansible-lint-to-junit-xml
ansible-lint -q -p <file or directly> | ansible-lint-to-junit-xml > results/ansible-lint-results.xml
或者,您可以分别运行ansible-lint和ansible-lint-to-junit-xml,并使用文件传递输出
ansible-lint -q -p <file or directly> > ansible-lint-results.txt ansible-lint-to-junit-xml ansible-lint-results.txt > results/ansible-lint-results.xml
注意:ansible-lint必须与-p一起运行,才能使输出可由计算机解析
功能
- 直接从ansible-lint调用管道输出
- 输出XML文件符合jenkins junit5 Schema。
- 使用Nekroze/cookiecutter-pypackage 构建
- 这个项目似乎是wasilak’s ansible-lint-junit的替代方案。
示例
对文件运行ansible-lint将导致:
playbooks/test_playbook.yml:41: [E303] curl used in place of get_url or uri module playbooks/tasks/example_task.yml:28: [E601] Don't compare to literal True/False
运行ansible-lint并将输出管道发送到ansible-lint-to-junit-xml看起来如下:
ansible-lint -q -p playbooks/test_playbook.yml | ansible-lint-to-junit-xml
会导致:
<?xml version="1.0" ?><testsuites><testsuiteerrors="2"name="ansible-lint"tests="2"><testcasename="[E303] curl used in place of get_url or uri module"><failuremessage="playbooks/test_playbook.yml:41: [E303] curl used in place of get_url or uri module"type="ansible-lint"> ansible-lint error: [E303] curl used in place of get_url or uri module ansible-lint error description: [E303] curl used in place of get_url or uri module filename: playbooks/test_playbook.yml line nr: 41 </failure></testcase><testcasename="[E601] Don't compare to literal True/False"><failuremessage="playbooks/tasks/example_task.yml:28: [E601] Don't compare to literal True/False"type="ansible-lint"> ansible-lint error: [E601] Don't compare to literal True/False ansible-lint error description: [E601] Don't compare to literal True/False filename: playbooks/tasks/example_task.yml line nr: 28 </failure></testcase></testsuite></testsuites>
历史记录
0.1.0(2019-07-30)
- pypi上的第一个版本。