我們使用巡航控制進行日常自動測試。我們使用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不會是動態的。 –