单元测试整个netbeans应用程序,包括相关项目

单元测试整个netbeans应用程序,包括相关项目,netbeans,junit,ant,automated-tests,Netbeans,Junit,Ant,Automated Tests,情况如下: 我有一个java应用程序(netbeans项目),它使用几个java库(每个库都是netbeans项目)。我有一个自动构建脚本,它使用ant构建应用程序,而不使用netbeans IDE。生成应用程序的命令是 ant jar 这很好,它递归地为所有依赖库构建jar,最后是应用程序jar 现在,我想在自动构建中运行所有的单元测试。默认的ant目标取决于目标jar、test和javadoc,所以我想我可以简单地调用 ant 作为build命令。与之前一样,所有JAR都是为依赖库构建的

情况如下:
我有一个java应用程序(netbeans项目),它使用几个java库(每个库都是netbeans项目)。我有一个自动构建脚本,它使用ant构建应用程序,而不使用netbeans IDE。生成应用程序的命令是

ant jar
这很好,它递归地为所有依赖库构建jar,最后是应用程序jar

现在,我想在自动构建中运行所有的单元测试。默认的ant目标取决于目标
jar
test
javadoc
,所以我想我可以简单地调用

ant
作为build命令。与之前一样,所有JAR都是为依赖库构建的,但只执行应用程序项目的单元测试(与javadoc相同,顺便说一句)。
那么,如何让ant递归地为每个依赖库项目运行单元测试呢

使用的版本有:netbeans 8、junit 4

我找到的唯一解决方案是将依赖项添加到ant为每个库和应用程序项目使用的
build.xml

<target name="-pre-jar" depends="test" />


但这意味着要对jar文件的每个构建执行所有测试。由于netbeans也使用这些
build.xml
文件,因此每个简单的构建都会导致执行所有的单元测试。

经过一些测试,我认为我找到了一个有效的解决方案

我必须将以下代码添加到每个netbeans项目的
build.xml
,这些项目的单元测试都应该运行(仅供参考:
build.xml
由netbeans提供,用于对构建过程进行个人更改)

如果我从调用中删除属性的定义,则不会执行发布时的目标测试,因此测试不会运行。当我使用netbeans IDE构建项目时也会发生同样的情况

也就是说,这是一个解决方案,不是解决方案,至少不是我所希望的解决方案。如果有一种方法可以递归地运行测试目标,而不必编辑所有这些
build.xml
文件,那么将更加方便。在netbeans生成的构建文件给出的约束条件下,这可能是不可能的

<target name="-pre-jar" depends="test-on-release" />
<target name="test-on-release" if="release.runtests">
    <antcall target="test" />
</target>
ant -Drelease.runtests= jar