我有一个示例项目结构。
现在我想只通过build.xml而不是MyTest运行MyTestTwo。我该怎么做呢?当我尝试只运行一个测试时,我通过这样做实现了它:
<target name="runJUnit" depends="compile">
<junit printsummary="on">
<test name="com.edu.BaseTest.MyTest"/>
<classpath>
<pathelement location="${build}"/>
<pathelement location="Path to junit-4.10.jar" />
</classpath>
</junit>
</target>
如果我必须为上述项目结构做任何事情,或者如果有10个不同的测试并且我只想要运行其中的5个,我该如何实现?我是Ant的新手,所以任何帮助都将受到赞赏。谢谢。
答案 0 :(得分:1)
建议使用测试套件的Juned Ahsan的答案很好。但是,正如问题所暗示的那样,您正在寻找完全包含在您的ant文件中的解决方案,那么您可以使用 batchtest 元素来指定要使用ant 文件集强>
<!-- Add this property to specify the location of your tests. -->
<property name="source.test.dir" location="path_to_your_junit_src_dir" />
<!-- Add this property to specify the directory in which you want your test report. -->
<property name="output.test.dir" location="path_to_your_junit_output_dir" />
<target name="runJUnit" depends="compile">
<junit printsummary="on">
<test name="com.edu.BaseTest.MyTest"/>
<classpath>
<pathelement location="${build}"/>
<pathelement location="Path to junit-4.10.jar" />
</classpath>
<batchtest fork="yes" todir="${output.test.dir}">
<!-- The fileset element specifies which tests to run. -->
<!-- There are many different ways to specify filesets, this
is just one example. -->
<fileset dir="${source.test.dir}" includes="**/MyTestTwo.java"/>
</batchtest>
</junit>
</target>
如上面的代码注释所示,有许多不同的方法可以使用文件集来指定要包含和排除的文件。您选择哪种形式即可使用。这实际上取决于您希望如何管理您的项目。有关文件集的详细信息,请参阅:https://ant.apache.org/manual/Types/fileset.html。
请注意&#34; ** /&#34;在文件集中是一个匹配任何目录路径的通配符。因此,MyTestTwo.java将匹配,无论它在哪个目录中。
您可以使用的其他可能的文件集规范:
<fileset dir="${source.test.dir}">
<include name="**/MyTestTwo.java"/>
<exclude name="**/MyTest.java"/>
</fileset>
答案 1 :(得分:0)
使用测试套件。根据您的需要,根据不同的测试用例制作不同的测试套件。