自动将样式表声明添加到ci_reporter xml文件

时间:2010-10-14 12:01:36

标签: ruby xml dom watir

我不是程序员,所以如果我的问题很容易为你们中的许多人解决,请原谅我们(但我仍然会觉得这很困惑)。

我遇到的问题是ci_reporter,一个与Watir和Test / Unit一起使用的gem。

它将测试结果从Watir测试输出到xml文件。到目前为止很棒。不幸的是,我找不到让ci_reporter在xml声明之后添加xsl样式表声明的方法。

<?xml version="1.0" encoding="UTF-8"?>
<testsuite time="6.796" assertions="1" name="TC_LoginTests" failures="0" tests="1" skipped="0" errors="0">
  <testcase time="6.796" assertions="1" name="test_loginValid">
  </testcase>

我想要它做的是:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="stylesheet.xsl"?>
<testsuite time="6.796" assertions="1" name="TC_LoginTests" failures="0" tests="1" skipped="0" errors="0">
 <testcase time="6.796" assertions="1" name="test_loginValid">
 </testcase>

我想也许会在某个地方设置一个参数,但是如果有的话我还没找到。每次手动添加样式表声明将非常繁琐。

这个问题有一个简单的解决方案吗?

2 个答案:

答案 0 :(得分:0)

我认为如果不破解ci_reporter的来源,你将无法达到你想要的效果。 ci_reporter旨在输出JUnit格式的XML文件,并没有提供任何改变它的方法。

我会保留XML输出,然后使用其他东西来应用xsl转换作为辅助步骤。

答案 1 :(得分:0)

通过改变ci_reporter gem中的test_suite.rb文件,可以很容易地做到这一点。不确定它是多么合适,但它可以让它做我需要它。

在to_xml方法中,我们更改了以下行:

builder.instruct!

改为阅读

builder.instruct!
builder.instruct! 'xml-stylesheet', {:href=>'output.xsl', :type=>'text/xsl'}