如何为我的自定义ant任务编写集成测试

时间:2014-02-12 10:12:15

标签: testing ant integration-testing

我想为我写的ANT任务写一个测试。这是一个pseude代码示例,我想象结果将是什么样的(它测试已存在于ant中的任务“属性”。在我的情况下,它显然是我的自定义任务而不是“属性”):

// setup
AntEnvironemt env = AntEnvironment.create(
"<project name=\"test\">" +
"  <target name=\"test\">" +
"    <property name=\"foo\" value=\"bar\"/>" +
"  </target>" +
"</project>");

// execution
env.runTarget("test");

//evaluation
assertEquals(env.getProperty("foo"), "bar");

这样的事情怎么办?

1 个答案:

答案 0 :(得分:0)

看看AntUnit。它允许对Ant任务进行更高级别的测试:

  <target name="testNoNestedTextButValueAttribute">
    <property name="foo" value="bar">
    </property>
    <au:assertPropertyEquals name="foo" value="bar"/>
  </target>

  <target name="testNestedTextAndValueAttribute">
    <au:expectfailure>
      <property name="foo" value="bar">
        hello
      </property>
    </au:expectfailure>
  </target>

以上示例可在文件apache-ant-1.9.3/src/tests/antunit/taskdefs/property-test.xml中的Ant 1.9.3 source distribution中找到。