jenkins不接受来自casperjs的xunit xml日志

时间:2013-08-20 14:10:23

标签: javascript testing jenkins frontend casperjs

我在我的jenkins服务器上运行了phantomjs和casperjs。 测试是执行和成功。但事情就是这样:

Casperjs将其结果记录在log.xml文件中。我想我可以在我的jenkins webUI上显示该xml文件的内容。我找到了jenkins的xunit插件,但它没有按预期工作:

  

[37; 42; 1mPASS 12测试在22.324s中执行,12次传递,0次失败,0   可疑,0跳过。 [0米

如您所见,测试成功

  

[32; 1mResult日志存储在../../build/frontendtests/log.xml中   [0m Publishing Clover coverage报告...发布Clover XML   报告...发布三叶草覆盖结果...记录测试结果   [xUnit] [INFO] - 开始录制。 [xUnit] [INFO] - 处理   AUnit-3.x(默认)[xUnit] [INFO] - [AUnit-3.x(默认值)] - 1个测试   找到了带有模式的报告文件   相对于'build / frontendtests / log.xml'   '为测试框架   'AUnit-3.x(默认)'。 [xUnit] [错误] - 结果文件   '为   指标“AUnit”无效。结果文件已被跳过。   [xUnit] [INFO] - 由于“如果错误设置构建失败”选项,则失败构建。

Jenkins构建失败,因为我的log.xml不能与AUnit一起使用。我也试过JUnit和JSUnit。结果相同。但我不明白。 casperjs导出xunit xml文件,我安装了xunit插件。但插件没有读取我的log.xml。

你有解决方案吗?也许我的jenkins设置错了?有什么想法吗?

谢谢...

这是我的log.xml

<?xml version="1.0" encoding="UTF-8"?>   <testsuites duration="3.859">
    <testsuite name="Checking the portal search for http://www.xxx.de/suche/jeans" tests="1" failures="0" errors="0" time="2.687" timestamp="2013-08-20T14:12:55.953Z" package="./execute_search_tests">
      <testcase name="Subject equals the expected value" classname="./execute_search_tests" time="2.687"></testcase>
      <system-out></system-out>
    </testsuite>
    <testsuite name="Checking the portal search for http://www.xxx.de/suche/asjdfkshjkfhdsjkafhkjasd" tests="1" failures="0" errors="0" time="1.172" timestamp="2013-08-20T14:12:55.954Z" package="./execute_search_tests">
      <testcase name="Subject equals the expected value" classname="./execute_search_tests" time="1.172"></testcase>
      <system-out></system-out>
    </testsuite>   </testsuites>

1 个答案:

答案 0 :(得分:2)

注意:您已使用AUnit选项配置了XUnit post构建操作。这是针对Ada单元测试的。

但我也测试了XUnit插件和JUnit选项,但它仍然失败了。我甚至enabled more logs,但这没有帮助。

Aug 21, 2013 12:00:05 AM com.thalesgroup.hudson.plugins.xunit.service.XUnitService errorSystemLogger
SEVERE: [xUnit] - The result file '/Users/lacostej/.jenkins/workspace/test-casperjs-xunit/log.xml' for the metric 'JUnit' is not valid. The result file has been skipped.
Aug 21, 2013 12:00:05 AM com.thalesgroup.hudson.plugins.xunit.service.XUnitService warningSystemLogger
WARNING: [xUnit] - The file '/Users/lacostej/.jenkins/workspace/test-casperjs-xunit/log.xml' is an invalid file.
Aug 21, 2013 12:00:05 AM com.thalesgroup.hudson.plugins.xunit.service.XUnitService infoSystemLogger
INFO: [xUnit] - [JUnit] - 1 test report file(s) were found with the pattern 'log.xml' relative to '/Users/lacostej/.jenkins/workspace/test-casperjs-xunit' for the testing framework 'JUnit'.

然而,当我使用“JUnit测试结果报告”插件进行一些测试并且解析很顺利。

<强>更新

正如您所知,问题是with the casperjs file using attribute duration instead of time for testsuites nodes。 Xunit比标准junit更严格。

我的建议:

  1. 使用标准的JUnit解析,它可以正常工作
  2. 如果你真的想使用xunit,你需要修复它,然后报告xunit解析的bug。这是我使用的测试用例配置:https://gist.github.com/lacostej/6287937
  3. 或者尝试将自定义样式与XSL一起使用。您仍然需要调试并知道为什么不接受您的XML。
  4. 我会选择#1或#2选项。