我有很多JUnit测试,都是由Netbeans的助手创建的(所以没有定制)。我可以通过“测试文件”(Ctrl + F6)手动运行每个测试手动。
但是当我使用“运行 - >测试项目”时,会显示“未执行测试”消息。
我是否必须在某处注册每个JUnit测试? 或者这可能是什么问题?
在此之前,输出窗口中会出现以下内容:
init:
Deleting: /MY-WORK/my.data.adv/build/built-jar.properties
deps-jar:
Updating property file: /MY-WORK/my.data.adv/build/built-jar.properties
my.commons.init:
my.commons.deps-jar:
Updating property file: /MY-WORK/my.data.adv/build/built-jar.properties
my.commons.compile:
Copy libraries to /MY-WORK/my.commons/dist/lib.
my.commons.jar:
my.data.init:
my.data.deps-jar:
Updating property file: /MY-WORK/my.data.adv/build/built-jar.properties
my.data.compile:
Copy libraries to /MY-WORK/my.data/dist/lib.
my.data.jar:
compile:
compile-test:
test-report:
test:
BUILD SUCCESSFUL (total time: 0 seconds)
修改
项目类型为“类库”,使用build.xml
中的无自定义配置。
或许有必要提一下,该项目是旧的(使用6.7之前的一些Netbeans版本创建)。
答案 0 :(得分:9)
由于我提交了生成答案所需的正确线索,我认为我应该为它添加一点价值......
如果使用NetBeans创建Java->类库项目,则可以创建与项目源包中的每个类关联的单元测试。您只需右键单击Projects explorer中的类。
如果要为项目创建“第一个测试”,IDE允许您在JUnit 3和JUnit 4之间进行选择。
当您为abcNewClass创建测试时,NetBeans将允许您将测试命名为您想要的任何内容并将测试放在您想要的任何包中...大多数情况下,您不希望更改出现的默认值在对话框中(abcNewClassTest)。在NetBeans 6.9版本中,如果您要创建的测试名称没有“Test”作为其后缀,则会出现警告。
如果创建的测试类名称不以“Test”结尾,则在项目中使用“测试”操作时仍可以运行它们。您只需从“正常”测试类触发它们。
答案 1 :(得分:6)
感谢用户vkraemer
!
解决方案是:当名称以Test
结尾时,仅运行JUnit测试。
来自build-impl.xml
的部分证明了这一点:
<target depends="init,compile-test,-pre-test-run"
if="have.tests" name="-do-test-run">
<j2seproject3:junit testincludes="**/*Test.java"/>
</target>
答案 2 :(得分:1)
如果您使用的是maven,则可能需要检查pom.xml上的surefire插件
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.11</version>
<configuration>
<includes>
<include>**/*Test.java</include>
</includes>
<systemPropertyVariables>
<java.util.logging.config.file>src/test/resources/logging.properties</java.util.logging.config.file>
</systemPropertyVariables>
</configuration>
</plugin>
...
答案 3 :(得分:0)
我的测试工作然后停止了,只显示:
未执行任何测试。(0.0 s)
问题是VM Options:
后-D
中的额外空格。这导致了问题:
-D mysetting.home=something
并修复了它:
-Dmysetting.home=something