2014-04-15 65 views
1

我們使用Jenkins作業和Phing進行部署,以進行構建。我們的應用程序是在CakePHP上製作的。當我運行Cake單元測試時,出現了一些錯誤(如預期的那樣)。儘管CakePHP單元測試失敗,但Phing仍在繼續構建

但是Phing並沒有感覺到它們,而是繼續建造,而不是停止進程並將構建標記爲失敗。有沒有處理輸出測試的優雅方式?

現在我們使用一個單獨的腳本掃描測試日誌並尋找「FAILURE」單詞。

回答

1

如果您的cake命令輸出的結果不是0,它將被Jenkins認爲是FAILURE,並且該作業將被相應標記。

要回答你的問題的關鍵字搜索控制檯日誌,有Text-finder plugin,允許搜索控制檯日誌和/或任何其他文件的正則表達式,並標記構建爲UNSTABLEFAILED若發現。

0

我正要做同樣的,但最終還是試圖追上失敗使用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> 
相關問題