我們使用Jenkins作業和Phing進行部署,以進行構建。我們的應用程序是在CakePHP上製作的。當我運行Cake單元測試時,出現了一些錯誤(如預期的那樣)。儘管CakePHP單元測試失敗,但Phing仍在繼續構建
但是Phing並沒有感覺到它們,而是繼續建造,而不是停止進程並將構建標記爲失敗。有沒有處理輸出測試的優雅方式?
現在我們使用一個單獨的腳本掃描測試日誌並尋找「FAILURE」單詞。
我們使用Jenkins作業和Phing進行部署,以進行構建。我們的應用程序是在CakePHP上製作的。當我運行Cake單元測試時,出現了一些錯誤(如預期的那樣)。儘管CakePHP單元測試失敗,但Phing仍在繼續構建
但是Phing並沒有感覺到它們,而是繼續建造,而不是停止進程並將構建標記爲失敗。有沒有處理輸出測試的優雅方式?
現在我們使用一個單獨的腳本掃描測試日誌並尋找「FAILURE」單詞。
如果您的cake
命令輸出的結果不是0
,它將被Jenkins認爲是FAILURE
,並且該作業將被相應標記。
要回答你的問題的關鍵字搜索控制檯日誌,有Text-finder plugin,允許搜索控制檯日誌和/或任何其他文件的正則表達式,並標記構建爲UNSTABLE
或FAILED
若發現。
我正要做同樣的,但最終還是試圖追上失敗使用ExecTask的returnProperty通過Phing構建:
<target name="caketest-local" description="Run CakePHP unit tests with PHPUnit and print human readable output.">
<exec dir="${basedir}" executable="${basedir}/app/Console/cake" output="${logdir}/caketest.log" returnProperty="test_result">
<arg line="test" />
<arg line="--stderr"/>
<arg line="--configuration=${basedir}/phpunit-coverage-text.xml" />
<arg line="app" />
<arg line="AllTests" />
</exec>
<if>
<not>
<equals arg1="${test_result}" arg2="0"/>
</not>
<then>
<fail msg="Build FAILED! Check caketest.log for details"/>
</then>
</if>
</target>