2011-12-06 127 views
0

我需要寫螞蟻(build.xml文件)文件執行以下操作執行rake任務: - 運行「耙測試」 - 運行「耙rspec的」 - 運行「耙功能」 - 如果上述所有合格的,然後做一個「上限部署分期」如何從Ant腳本

我是新來的Ant腳本,到目前爲止,我已經做了:

<project name="myapp" basedir="."> 
    <target name="run-migrations"> 
    <exec executable="rake"> 
     <arg value="db:migrate"></arg> 
    </exec> 
    </target> 
    <target name="load-rake-task" depends="run-migrations"> 
    <exec executable="rake"></exec> 
    </target> 
    ... 
</project> 

這將運行耙分貝:遷移,其次是耙,但我還沒有想出如何捕捉命令運行的輸出,更好的是,如果有任何測試失敗。

如何修改上述腳本來捕獲輸出並找出在上述場景中通過並失敗了多少測試?

回答

1

捕獲輸出使用下面的屬性從exec任務:

  1. outputproperty標準輸出
  2. errorproperty爲標準錯誤
  3. resultproperty爲RC(返回碼)

意味着什麼像這樣:

<exec executable="rake" outputproperty="rake.out" errorproperty="rake.err" resultproperty="rake.rc"> 
    <arg value="db:migrate"></arg> 
</exec> 

也建議使用failonerror="true",默認爲false。詳細請參照Ant manual/exec task

+0

感謝您的答案,我如何確定有多少失敗,如果有? – umar

+0

從未使用過耙子。你可以解析你的屬性$ {rake.out} =>捕獲rake stdout流,$ {rake.err} =>捕獲特定模式的rake stderr流! – Rebse

+0

所以我怎麼能修改上面的exec命令來做這樣的事情: 如果rake.out.match(/(\ d +)errors /)&& $ 1.to_i> 0,那麼 '輸出:有$ 1錯誤運行耙,如此墮胎'; '失敗' 其他 '繼續' – umar