I have many JUnit tests, which are all created by Netbeans' assistant (so nothing customized). I can run every test manually by doing "Test File" (Ctrl+F6).
But when I use "Run -> Test Project", the message "No Tests executed" is displayed.
Do I have to register every JUnit test somewhere?
Or what could be the problem here?Before that, following appears in the output window:
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)
EDIT
The project type is "class library", no custom configurations in
build.xml
are used.Perhaps it is relevant to mention, that the project is old (created with some Netbeans version 开发者_StackOverflow社区prior to 6.7).
Since I submitted the correct clue necessary to generate an answer, I figure that I should add a bit of value to it...
If you create a Java->Class Library project with NetBeans, you can create a unit test associated with each of the classes in your project's Source Packages. You just need to right-click on the class in the Projects explorer.
If you are creating the 'first test' for a project, the IDE lets you choose between JUnit 3 and JUnit 4.
When you create a test for a.b.c.NewClass, NetBeans will allow you to name the test anything you want and put the test in any package you want... most of the time, you do not want to change the defaults that appear in the dialog (a.b.c.NewClassTest). In NetBeans 6.9 builds, a warning will appear if the name of the test you are about to create does not have "Test" as its suffix.
If you create test class names that do not end with "Test", you can still get them to run when you use the Test action on a project. You just have to trigger them from a 'normal' test class.
Thanks to the user vkraemer
!
The solution is: Only JUnit tests are run when their name ends with Test
.
Section from build-impl.xml
proves it:
<target depends="init,compile-test,-pre-test-run"
if="have.tests" name="-do-test-run">
<j2seproject3:junit testincludes="**/*Test.java"/>
</target>
If you are using maven, you might want to check your surefire plugin on pom.xml
...
<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>
...
My tests were working then they stopped, just displaying:
No tests executed.(0.0 s)
The problem was an extra space in the VM Options:
after the -D
. This caused problems:
-D mysetting.home=something
and this fixed it:
-Dmysetting.home=something
精彩评论