【发布时间】:2012-09-11 15:55:07
【问题描述】:
我有一个脚本(test.bat),它允许我通过命令行启动一个 java 测试: -java -cp() org.junit.runner.JUnitCore package.Class
现在我想对几个 java 测试做同样的事情? 我该怎么做?我应该为每个 java 测试添加字节码吗? 请给我一个例子好吗?
【问题讨论】:
标签: java unit-testing junit
我有一个脚本(test.bat),它允许我通过命令行启动一个 java 测试: -java -cp() org.junit.runner.JUnitCore package.Class
现在我想对几个 java 测试做同样的事情? 我该怎么做?我应该为每个 java 测试添加字节码吗? 请给我一个例子好吗?
【问题讨论】:
标签: java unit-testing junit
您可以通过junit ant 任务的单个命令使用 Ant 来运行您的测试。这是一个如何使用它的示例:
<target name="runtests" depends="clean,compiletests">
<junit printsummary="yes" haltonfailure="no">
<classpath>
<path refid="test.classpath" />
<pathelement location="${test.classes}"/>
</classpath>
<formatter type="xml"/>
<batchtest fork="yes" todir="${test.reports}">
<fileset dir="${test.src}">
<include name="**/*Test*.java"/>
</fileset>
</batchtest>
</junit>
</target>
该目标使用batchtest,它是junit ant 任务的一部分。它设置您的测试类路径,因此所有在其类名中包含 Test.java 模式的测试都将包括在内。查看JUnit Task documentation。
【讨论】:
在 JUnit 中,您可以将测试分组到一个测试套件中,然后使用单个命令运行它。
这是关于 using test suites in JUnit 3 的教程, 这是关于 same with JUnit 4 的 SO 帖子。 另外,这里有一个关于how to use the new features of JUnit 4的教程。
但是,如果您实际上是在尝试在批处理文件中编写构建脚本,我建议您改用现有的构建系统,无论是 Ant、Maven、Buildr 还是其他。
【讨论】:
JUnit 中使用的约定是拥有一个 AllTests 测试套件,将项目中的所有测试组合在一起,并使用 Ant 脚本或执行 AllTests 测试套件的任何东西。
【讨论】:
您可以使用 JUnit 注释语法创建一组套件。我在more detail here中描述了它。
【讨论】:
我看到了 3 种可能性:
使用这样的东西:
org.junit.runner.JUnitCore.runClasses(TestClass1.class, ...);
public class GlobalTest { }
【讨论】: