我们使用巡航控制进行日常自动测试。我们使用JUnit框架。对于每种情况,我们都有一个除junit案例的日志文件以外的输出文件。构建完成后,我们将输出文件添加到项目的工件目录中。我们使用内置的XSL文件“unittests.xsl”来发布电子邮件结果。 最近,我想修改xsl文件“unittests.xsl”,为每个案例添加一个超链接到输出文件。以下是我试过在最开始:如何将项目属性输出到构建XML日志,以便可以在XSL文件中使用它们?
<td class="unittests-data" width="300">
<a href="{concat('artifacts/',$projectname,'/',$cctimestamp,'/autotest_logs/',..//..//@name,'_',..//@name,'.log')}"><xsl:value-of select="..//@name"/></a>
</td>
这里的问题是,输出文件的URL使用Web浏览器中打开结果页面时可以正常工作;但结果邮件中的url不正确。在邮件中,URL被concated为: http://localhost:18080/cruisecontrol/buildresults/artifacts/ ...
但我想要的是:
http://localhost:18080/cruisecontrol/artifacts/ ...
所以我想到的是另一种方式来解决这个问题。我的想法是,以输出根URL到项目日志的属性,以使XSL文件可以得到这样的价值:
<xsl:variable name="urlroot" select="/cruisecontrol/info/property[@name='urlroot']/@value"/>
<td class="unittests-data" width="300">
<a href="{concat($urlroot,'artifacts/',$projectname,'/',$cctimestamp,'/autotest_logs/',..//..//@name,'_',..//@name,'.log')}"><xsl:value-of select="..//@name"/></a>
</td>
这里的问题是,该项目的属性(config.xml中定义)不会输出到项目日志中。所以我不能这样做。
有没有其他办法可以达到这个目的?提前致谢。
谢谢。这也是我的想法:) – adarliu
解决方案的一个问题是,XML文件中的属性不能由项目动态生成... – adarliu
您有一个模板xml文件,您在构建期间填写。它有空值开始。这就是我们所做的。它足够动态。无论如何,xsl不会是动态的。 –