Java 从Ant运行JUnit时遇到问题
以下是我用来运行测试的目标:Java 从Ant运行JUnit时遇到问题,java,ant,junit,Java,Ant,Junit,以下是我用来运行测试的目标: <target name="run-tests" description="run the tests" depends="compilation"> <junit> <sysproperty key="tests.basedir" value="${SPECIAL_PATH}/unit_tests"/> <classpath>
<target name="run-tests" description="run the tests" depends="compilation">
<junit>
<sysproperty key="tests.basedir" value="${SPECIAL_PATH}/unit_tests"/>
<classpath>
<pathelement location="${COMPILED_CLASSES}"/>
<pathelement location="${basedir}/junit-4.8.1.jar"/>
</classpath>
<batchtest>
<fileset dir="${COMPILED_CLASSES}/unit_tests/">
<include name="**/Test*.class"/>
<exclude name="**/*$*"/>
</fileset>
</batchtest>
</junit>
</target>
特殊路径
属性指向类的源代码。COMPILED_CLASSES
属性指向放置.class
文件的位置。我需要tests.basedir
属性,因为我从单元测试中使用它
我做错了什么
编辑:我还认为我应该解释一下
$
的排除。我排除了匿名类,因为它们不代表测试用例,它们只从它们中使用。您告诉Junit在${COMPILED\u classes}/unit\u tests/
中执行每个测试类,但您只是将${COMPILED\u classes}
放在类路径上。您可能需要将类路径条目更改为
<pathelement location="${COMPILED_CLASSES}/unit_tests/"/>
您告诉Junit执行
${COMPILED_CLASSES}/unit_tests/
中的每个测试类,但您只是将${COMPILED_CLASSES}
放在类路径上。您可能需要将类路径条目更改为
<pathelement location="${COMPILED_CLASSES}/unit_tests/"/>
您可能需要编译UnitTests。您可以在哪里发布您使用javac任务吗?您可能需要编译UnitTests。您能在哪里发布您使用javac任务吗?因为您的CLAPATH
${COMPILED_CLASSES}
你的考试班在
${COMPILED_CLASSES}/unit_tests
它们需要打包
unit_tests.<whatever the classpath is>
单元测试。
传统上,这就是为什么人们将普通源代码编译成目标/类,并将测试源代码编译成目标/测试类的原因
${COMPILED_CLASSES}
你的考试班在
${COMPILED_CLASSES}/unit_tests
它们需要打包
unit_tests.<whatever the classpath is>
单元测试。
传统上,这就是为什么人们将普通源代码编译成目标/类,将测试源代码编译成目标/测试类的原因Java不应该自动下降到该文件夹中吗?如果我有20个测试包,我需要将它们全部添加到classpath?@Geo文件夹中,它需要从包根开始。目前junit认为类应该是unit_tests.testpackage.TestMyClass而不是testpackage。TestMyClass@Kevin,我尝试自己运行一个类,使用
test
任务,它运行正常。它使用的类路径与我发布的相同。有什么想法可以解释为什么会这样吗?发布一个有效的配置可能会有帮助,以找出为什么原始配置不起作用。Kevin,根据您对unit\u tests.testpackage.TestMyClass
package建议的评论,我让它起作用了。当我只在文件集上放置编译类时,它就起作用了。如果你想写一个答案,我会标记它。Java不应该自动下降到那个文件夹中吗?如果我有20个测试包,我需要将它们全部添加到classpath?@Geo文件夹中,它需要从包根开始。目前junit认为类应该是unit_tests.testpackage.TestMyClass而不是testpackage。TestMyClass@Kevin,我尝试自己运行一个类,使用test
任务,它运行正常。它使用的类路径与我发布的相同。有什么想法可以解释为什么会这样吗?发布一个有效的配置可能会有帮助,以找出为什么原始配置不起作用。Kevin,根据您对unit\u tests.testpackage.TestMyClass
package建议的评论,我让它起作用了。当我只在文件集上放置编译类时,它就起作用了。如果你愿意写一个答案,我会记下来的。