我已经安装了npm的jsonjunit包。我想将json文件转换为junit xml - 以便jenkins可以读取该文件。我的json文件是这样的: -
{ “结果”:[ { “ID”:1136168, “开始时间”: “2017-05-12T15:11:07.834Z” “ENDTIME”: “2017-05-12T15:11:17.834Z” “状态”:0, “评论”:“测试已经完成”, “日志文件”: “FTP:// stormtest:stormtest @ BLR-strmtst-01:21 /公/ NET_TEST /工具/ flashUI_20170511_124701” “用户”:{ “ID”:1032295, “名”: “BLRTEST”}, “脚本”:{ “路径”: “公共/ NET_TEST // //工具flashUI.py”}, “时间表”:{ “ID”:1136164}, “工作”:{ “ID”:1136167}, “待测试器件”:[{ “ID”:98113, “姓名”: “7430_NET_II_1”}], “槽”:[{ “ID”:59, “数量”:2 “服务器”:{ “ID”:52, “名称”: “BLR-STRMTST-01”}}]}]}
我使用以下命令将json转换为junit xml,按照https://www.npmjs.com/package/json-junit.But中提到的指令抛出错误:
var dateFormatted = new Date(jsonData.stats.start), TypeError:无法读取Object.convertJson中未定义的属性“start”(C:\ Program Files \ nodejs \ node_modules \ npm \ node_modules
请帮忙。
答案 0 :(得分:0)
我能够将XML转换为Junit xml格式,可以由jenkins读取。首先,我创建了以下用作解析器的XLST文件: -
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="/">
<testsuites>
<testsuite tests="{count(exported_results/test_result)}" passed="{count(exported_results/test_result[test_status='111'])}" failed=" {count(exported_results/test_result[test_status='100'])}">
<xsl:for-each select="exported_results/test_result[test_status='111']">
<testcase name="{test_script}" classname="{schedule_name}" result="{test_status}" comments = "{result_comments}"></testcase><passed />
</xsl:for-each>
<xsl:for-each select="exported_results/test_result[test_status='100']">
<testcase name="{test_script}" classname="{schedule_name}" result="{test_status}" comments = "{result_comments}"></testcase><failed />
</xsl:for-each>
</testsuite>
</testsuites>
</xsl:template>
</xsl:stylesheet>
然后我使用了文章中提供的python脚本: - How to transform an XML file using XSLT in Python?
在脚本的帮助下 - 我能够生成jenkins支持的junit xml。输出如下: -
<?xml version="1.0"?>
-<testsuites>
-<testsuite failed=" 1" passed="1" tests="2">
<testcase comments="Test has run to completion" result="111" classname="FAV" name="public/Test_ATL_1/Framework/ATS_UI/Guide_test/zapper/favorite_list/TM_2291_add_fav_chn_from_epg.py"/>
<passed/>
<testcase comments="Test has run to completion" result="100" classname="FAV" name="public/Test_ATL_1/Framework/ATS_UI/Guide_test/zapper/favorite_list/TM_2287_add_fav_chn_from_live.py"/>
<failed/>
</testsuite>
</testsuites>