如何从命令行运行Netbeans创建的Ant项目中的单个JUnit测试?

3

如果您不介意记住/设置CLASSPATH,那么这个答案是可行的:如何从命令行运行JUnit测试用例。但是,如果项目是由Netbeans创建的,则类路径已经在您的项目中,并且项目“知道”如何运行单个单元测试和单个单元测试方法。

$ ant -p
. . .
 test-single             Run single unit test.
 test-single-method      Run single unit test.
. . .

然而,如果你尝试构建这些目标,你会收到以下错误信息(然后是其他信息),但没有指导如何设置相关属性:

BUILD FAILED
/home/me/myproject/nbproject/build-impl.xml:1300: Must select some files in the IDE or set javac.includes

如果属性设置不正确,Ant 只会告诉你构建成功了,但并没有编译或运行测试。这比应该的要困难。

那么,我们如何设置这些目标需要的属性呢?

1个回答

6

经过一些尝试,我发现了以下内容。

要构建test-single目标:

javac.includestest.includes都设置为所需JUnit测试的.java源文件路径。路径必须相对于项目的test文件夹。例如:

$ ant test-single -Djavac.includes=my/company/MyTest.java -Dtest.includes=my/company/MyTest.java

构建test-single-method目标:

此外,将test.class设置为您的测试类的完全限定名称,并将test.method设置为测试方法的名称。 例如:

$ ant test-single-method -Djavac.includes=my/company/MyTest.java -Dtest.includes=my/company/MyTest.java -Dtest.class=my.company.MyTest -Dtest.method=testSomething

是的,这些参数非常重复,需要脚本化处理。 我将test-single包装在一个脚本中,只需提供.java源文件路径即可。
我希望能够将test-single-method包装在一个脚本中,接受.java源文件和方法名作为参数,但我还没有学会如何进行字符串操作。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接