如何从ant脚本执行rake任务

时间:2011-12-06 13:18:26

标签: ruby-on-rails ant rake

我需要编写一个ant(build.xml)文件来执行以下操作: - 运行'rake test' - 运行'rake rspec' - 运行'rake features' - 如果以上所有内容都通过,那么请执行'cap deploy staging'

我是蚂蚁脚本的新手,到目前为止,我已经完成了:

<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>

这运行rake db:migrate,然后是rake,但我还没弄明白如何捕获命令运行的输出,更好的是,如果任何测试失败,如何访问。

如何修改上述脚本以捕获输出并找出在上述场景中传递和失败的测试数量?

1 个答案:

答案 0 :(得分:1)

要捕获输出,请使用exec任务中的以下属性:

  1. outputproperty for stdout
  2. errorproperty for stderr
  3. RC的
  4. resultproperty(返回码)
  5. 意思是这样的:

    <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了解详细信息。