使用ANT中的System属性帮助查找正确的java文件

时间:2013-02-10 15:57:43

标签: ant junit

我有一个名为ITEM_ROOTDIR.tests的系统属性。它的值为abc,xyz。使用基于ANT的任务,如何在src文件夹中找到abc.java和xyz.java? (src文件夹在basedir中,并且basedir已声明为“。”)一旦找到文件,我可以在include任务中使用这些多个文件吗?如果不是如何包括它们?

最好只找到文件并将结果存储回ITEM_ROOTDIR.tests.然后在include task中再次使用该属性。

1 个答案:

答案 0 :(得分:0)

在我看来,你是通过单独运行测试为自己创造的。

这是我的标准测试目标:

<target name="test" depends="compile" description="Run unit tests">
    <mkdir dir="${build.dir}/tests"/>

    <junit printsummary="yes" haltonfailure="${junit.haltonfailure}">
        <classpath>
            <path refid="runtime.path"/>
            <pathelement path="${classes.dir}"/>
        </classpath>
        <formatter type="plain"/>
        <batchtest fork="yes" todir="${build.dir}/tests">
            <fileset dir="${src.dir}" includes="**/*Test*.java"/>
        </batchtest>
    </junit>
</target>

在我的“src”目录中运行测试,为所有测试生成综合报告。

更新

测试耗时太长时间是一个非常常见的问题。标准答案是重构你的测试以使它们更快.....: - (

意见各不相同,但根据我的经验,最佳解决方案是将您的测试划分为不同的类别。

  • 单元测试(模拟,因此应该快速运行并涵盖所有功能)
  • 快速集成测试
  • 慢速集成测试。

我将单元测试作为构建的一部分,集成测试作为单独的Jenkins作业(部署后)运行。这满足了我对即时反馈的需求,并将我的测试报告分为3类,而不是强迫我跟踪每个单独的测试。

针对个别测试的另一个论点是,在大型团队中,您没有看到您的更改对代码库的其他部分产生的影响。毕竟这是团队的努力: - )