2015-05-20 66 views
0

我覺得我已經嘗試了一切,我們目前有一個解決方案,在簽入TFS後,我們強制在CruiseControl.net上構建。在我們的解決方案中,我們使用Chutzpah JS測試適配器。如果任何JS測試失敗,我們能夠成功地使用Chutzpah.console.exe來使構建失敗,現在我們想要在覆蓋範圍上構建失敗。我找不到任何方法將Chutzpah.console.exe輸出覆蓋率轉換爲其生成的XML文件。如何基於chutzpah覆蓋率構建失敗?

我想我可以通過編寫自己的.xsl解決_Chutzpha.coverage.html來解決問題。我打算使用CruiseControl已經可以解釋的junit格式將其轉換爲xml。由於我只關心構建失敗,所以我想讓我的變換的輸出看起來像更多失敗的單元測試。在xsl我會設置屬性失敗> 0

<?xml version="1.0" encoding="UTF-8" ?> 
<testsuites> 
    <testsuite name="c:\build\jstest\jstest\tests\TestSpec2.js" tests="1" failures="1"> 
    <testcase name="Coverage" time="46" /> 
    </testsuite> 
</testsuites> 

但我真的不能因爲傳入的HTML具有自閉標籤。

因此,現在我只想運行Chutzpah.Console.exe並將輸出傳輸到文件,因爲控制檯輸出不會顯示總平均覆蓋率,讀取該值,並且如果它低於閾值,則生成失敗。

有更好的選擇嗎?我錯過了什麼?我不知道那麼多cruisecontrol.net

+0

Chutzpah有一個名爲CodeCoverageSuccessPercentage(https://github.com/mmanela/chutzpah/wiki/Chutzpah.json-Settings-File)的設置,該設置確定涵蓋的線路的什麼比例將被視爲成功。正因爲如此,它目前不會導致非零狀態碼。會使這個改變解決你的問題嗎? –

+0

我認爲這可能。我真的不知道如何chutzpah和cruisecontrol.net交互 –

+0

其實這正是我們需要的。如果將覆蓋範圍輸出到像使用單元測試數據一樣的xml文件,我們可以編寫一個xsl文件來將其轉換爲巡航控制所需的方式。 –

回答

1

我認爲輸出到一個文件,並解析,這是唯一的選擇離開。 可惜的是覆蓋信息是不是在xml文件:-(

這其實更多的是比CCNET與放肆的問題, 想到CCNET作爲升級任務調度,它有很多的選擇,但依賴於它從被調用程序接收到的輸入,如果那個人不能提供數據,你就會被困在這樣的解決方法中:-(

0

還有另一種選擇,但它可能更多的是旅行Sonarqube是一款基於服務器的工具,用於管理和分析代碼質量,它有一個名爲「Build Breaker」的插件,如果任何數量的代碼質量度量不符合,它可以讓構建失敗,包括單元測試覆蓋率,就像我說的,這有點涉及,因爲你必須建立一個服務器並學習這個新工具,但無論如何,這是一件好事。

我將Chutzpah與/ lcov命令行選項一起使用,以便將覆蓋範圍輸出到文件,然後告知聲納在該項目的聲納配置中找到該文件中的覆蓋範圍。然後,您可以在Cruise Control.net構建過程中添加一個步驟來運行聲納分析,並且如果您已經正確配置了構建斷路器插件,則如果覆蓋範圍未達到您指定的級別,則巡航控制中的構建將失敗。

相關問題