我已经为此花了一段时间(用Google搜索了一堆,浏览了其他相关的SO帖子都无济于事)。我有一个包含两个文件的Java程序,Logic
并且Tests
。Tests
包含上百JUnit测试,我已经通过调用得到与上述试验成功率100%
javac *.java
,随后java org.junit.runner.JUnitCore Tests
。但是,当我build.xml
用一个简单ant -verbose test
的命令运行(为了跟踪输出,因为我是这一切的新手)时,我得到以下输出:
[junit] Testsuite: Tests
[junit] Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0 sec
[junit]
[junit] Null Test: Caused an ERROR
[junit] Tests
[junit] java.lang.ClassNotFoundException: Tests
[junit] at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
[junit] at java.lang.Class.forName0(Native Method)
[junit] at java.lang.Class.forName(Class.java:247)
[junit]
[junit]
[junit] Test Tests FAILED
BUILD SUCCESSFUL
我build.xml
的如下:
<project name="ETL_Automation" default="test" basedir=".">
<path id="classpath.base">
</path>
<path id="classpath.test">
<pathelement location="${basedir}/mysql-connector-java-5.1.18-bin.jar" />
<pathelement location="${basedir}/junit-4.10.jar"/>
<path refid="classpath.base" />
</path>
<target name="compile">
<javac srcdir="${basedir}">
<classpath refid="classpath.test"/>
</javac>
</target>
<target name="test" depends="compile">
<junit fork="no">
<classpath refid="classpath.test" />
<formatter type="brief" usefile="false" />
<batchtest>
<fileset dir="${basedir}/" includes="Tests.class" />
</batchtest>
</junit>
</target>
<target name="clean" depends="test">
<delete>
<fileset dir="${basedir}" includes="*.class"/>
</delete>
</target>
目录结构非常简单。Tests.java
,Logic.java
,junit-4.10.jar
,mysql-connector- java-5.1.18-bin.jar
,build.xml
,和引用的.properties
文件都在同一个文件夹。Java代码引用了外部文件,但这些文件与此特定问题无关。我不知道类路径是否可能是导致此问题的原因(因为我非常确信我当前拥有的东西行不通)。
谢谢!
您需要将带有的目录添加Tests.class
到classpath.tests
类路径(${basedir}
在您的设置中)
尝试:
<path id="classpath.test">
<pathelement location="${basedir}/mysql-connector-java-5.1.18-bin.jar" />
<pathelement location="${basedir}/junit-4.10.jar"/>
<pathelement location="${basedir}" />
<path refid="classpath.base" />
</path>
如果我在运行ant-task时查看控制台日志,我可以看到新的.jar文件是如何发送的: 如果打开创建的binmanifest.jar,我会发现一个manifest.mf文件,其中包含Class-Path属性中的所有路径,格式为:../../class1/bin../../class2/bin../../classn/bin。但是由于某些原因,我的所有测试都失败了,因为我的类找不到。我错过了什么?谢
我目前有一个私有的Java项目,我正在努力使其成型,以供其他开发人员使用。我尝试做的一件事是让Ant自己下载像JUnit、PMD和FindBugs这样的东西所需要的JAR,这样开发人员就不必自己安装它了。因此,我已经卸载了所有这些内容的RPM包(以确保我使用的是Ivy下载的版本),并且Ivy可以很好地下载JUnit相关的JAR文件。然而,我有两个(可能相关的)问题: 1)如果为任务输入,则会收到警
此任务用于从JUnit测试框架运行测试。 此任务依赖于默认情况下未包含在Apache Ant分发中的外部库。 和都需要运行此任务,因此将这些JAR放在位置:ANT_HOME/lib 。 元素在文件中用于实现此任务。 它还支持嵌套元素,它提供了类似路径的结构。 1. Apache Ant Junit任务属性 属性 描述 必需 打印测试用例的摘要 否 在单独的JVM中运行测试 否 控制着要分叉测试用例
使用ANT的Junit报告。我参加过各种论坛,包括:https://bugs.eclipse.org/bugs/show_bug.cgi?id=384757.最后降落在这里寻求帮助。 基本上,我有一个带有大量测试的junit项目,我正在尝试使用ANT构建来运行它。xml并获取html报告。当使用ANT 1.8.4和JDK 1.7时,该构建会成功运行,但不会生成相同的html报告。从一篇文章中发现J
问题内容: 我使用由maven自动安装的junit。当我运行Maven测试时,我的测试工作正常。但是,当我调用Eclipse JUnit测试时,它不使用当前版本的测试类。 例如,如果我将a更改为a,则会 得到相同的结果。这真让我抓狂。 项目的自动构建已启用。为什么JUnit使用一些旧的废话? 谢谢您的帮助。专家清洗和日食清洗解决了该问题。奇怪的… 问题答案: Maven最有可能编译为./targe
目前,我正在尝试使用Jenkins来部署我的项目代码。在这个项目中,我们使用Junit来实现TDD方法。 最后一个错误是在执行这行时发生了以下错误:也是在build.xml中,当构建一个模块(SDK)时 在成功构建之后,我想为各种测试套件生成Junit-report。Junit测试报告xmls现在正在为每个模块生成。