题
我们迁移到两个JUnit4和蚂蚁1.7
测试运行现在日食,但注释忽略时运行测试使用蚂蚁。
根据蚂蚁junit任务 文档:
它还与JUnit4.0,包括"纯粹的"JUnit4测试,仅使用注释并没有JUnit4TestAdapter.
但本文件不阐述应如何配置。
是否有任何特殊的设置所需要的junit的任务?我失去了一些东西?我们有两个测试延伸的测试用例(即3.8式)和"纯粹的"Junit4测试,可能这就是问题吗?
解决方案
我使用纯JUnit4测试用Ant。
下面是我的构建文件的有趣的部分:
<junit printsummary="yes" haltonfailure="yes">
<formatter type="xml"/>
<classpath refid="path.test"/>
<batchtest fork="yes" todir="${dir.report.unittests.xml}">
<fileset dir="src">
<include name="**/*Test*.java"/>
</fileset>
</batchtest>
</junit>
请确保您有蚂蚁的lib目录中的最新版本的junit.jar文件。据我所知,所需要的版本与蚂蚁1.7或更高版本的交付...
其他提示
蚂蚁船只与一个版本的JUnit3默认。JUnit3没有支持对于测试的注释。
使用JUnit4的注释从junit的任务,确保提供位置的一JUnit4罐子在一套类路径元的junit的任务(见 这项中的常见问题的蚂蚁).
<junit showoutput="yes" fork="true">
<classpath>
<!-- The location of the JUnit version that you want to use -->
<pathelement location="lib/junit-4.9b1.jar"/>
</classpath>
<formatter type="plain" usefile="false" />
<batchtest>
<fileset dir="${tests.dir}"/>
</batchtest>
</junit>
这是一个较好的解决方案复盖的ant-junit.jar 在ANT_HOME/lib,因为它意味着你可以保持你的JUnit罐源的控制代码一同作出升级为以后的版本明了。
请注意,虽然我还没有指定任何包括模式在我的文件集上述这并不意味着junit任务将尝试运行JUnit对所有类在该目录的结构,可能会导致一些课程被包括在内,不含有任何测试,这取决于你如何有结构化的源文件。
您终于可以只找与在 skipNonTests执行测试参数蚂蚁1.9.3+加入!
这是从上方接受的答案的代码片段(除了新的 skipNonTests在文件名要求强>参数和摆脱“测试”的):
<junit printsummary="yes" haltonfailure="yes">
<formatter type="xml"/>
<classpath refid="path.test"/>
<batchtest skipNonTests="true" fork="yes" todir="${dir.report.unittests.xml}">
<fileset dir="src">
<include name="**/*.java"/>
</fileset>
</batchtest>
</junit>
这发生在我,这是因为我是使用注释和延伸测试用例两者。
public class TestXXX extends TestCase {
@Test
public void testSimpleValidCase() {
// this was running
}
@Test
public void simpleValidCase() {
// this wasn't running
}
}
在扩展TestCase你正在承担JUnit3样式,以便JUnit4注解都被忽略。
的解决方案是停止延伸测试用例。
验证您的类路径定义... 这解决了问题。
<path id="classpath" description="Classpath do Projeto">
<fileset dir="${LIB}">
<include name="**/*.jar" />
<exclude name="**/.SVN/*.*"/>
</fileset>
</path>
这是我的通用ant脚本中的相关部分...不知道这会帮助你或不..
<junit fork="true"
forkmode="once"
haltonfailure="false"
haltonerror="false"
failureproperty="tests.failures"
errorproperty="tests.errors"
includeantruntime="true"
showoutput="true"
printsummary="true">
<classpath>
<path refid="path-id.test.classpath.run"/>
</classpath>
<formatter type="xml"/>
<batchtest fork="yes"
todir="${dir.build.testresults}">
<fileset dir="${dir.src.tests}">
<include name="**/*Test.java"/>
</fileset>
</batchtest>
</junit>
将此注释应用于其他类org.junit.Ignore
我还试图用JUnit 4.0无JUnit4TestAdapter中,即,做测试,没有方法,点击 公共静态junit.framework.Test套件(){ 返回新JUnit4TestAdapter中(SomeTestClass.class); }
我使用蚂蚁1.9.4。 冗长运行ant测试(蚂蚁-v)所示
[junit的]运行在同一VM结果,多个测试 [junit的]加入隐/usr/share/java/junit.jar:/usr/sharejava/ant-launcher.jar:/usr/share/java/ant.jar:/usr/share/java/ant/ant-junit .JAR到CLASSPATH
啊哈,但仍有一些蚂蚁的junit任务。 下载这说明除 /usr/share/java/ant/ant-junit4.jar这是不隐式添加。 我刚添加它明确地:
<junit printsummary="yes"
fork="yes"
forkmode="once"
maxmemory="1023m"
showoutput="no">
...
<classpath>
<pathelement path="...:${junitJar}:${hamcrestJar}:/usr/share/java/ant/ant-junit4.jar" />
</classpath>
...
</junit>
和它的工作。无:无。 我知道,这个解决方案是不漂亮在所有...
我最终什么事做了添加一只蚂蚁所使用的任务>我的定义之一。等瞧。