33

When I run a single test in Maven with this command:

mvn test -Dtest=InitiateTest 

I'm getting the following result:

No tests were executed! 

It worked a couple of minutes ago, but now it stopped working for some reason. I tried running mvn clean a couple of times before running the test, it doesn't help.

The test looks like this:

import org.openqa.selenium.*; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.support.ui.Select; import org.junit.After; import org.junit.Before; import org.junit.Test; public class InitiateTest { public static FirefoxDriver driver; @Before public void setUp() throws Exception { driver = new FirefoxDriver(); } @Test public void initiateTest() throws Exception { driver.get("http://localhost:8080/login.jsp"); ... } @After public void tearDown() throws Exception { driver.close(); } } 

UPDATE:

It's caused by adding this dependency to POM:

<dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium</artifactId> <version>2.0b1</version> <scope>test</scope> </dependency> 

When I remove it, everything works fine. Everything works fine even when I add these two dependencies instead of the previous one:

<dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-support</artifactId> <version>2.0b1</version> <scope>test</scope> </dependency> <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-firefox-driver</artifactId> <version>2.0b1</version> <scope>test</scope> </dependency> 

This is weird.

2
  • What kind of test are you trying to run? You did not put an @Ignore by any chance? Commented Jan 10, 2011 at 10:59
  • Probably not too helpful..but remember, both those are beta products and mightily subject to breaking all over the place. Commented Jan 10, 2011 at 20:35

17 Answers 17

13

You are probably picking up JUnit3 on your classpath somewhere, which effectively disables JUnit4.

Run mvn dependency:tree to find out where it's coming in from and add exclude if from the dependency.

Sign up to request clarification or add additional context in comments.

Comments

13

Perhaps you are seeing this bug, which is said to affect surefire 2.12 but not 2.11?

7 Comments

Thanks, this is what I was running into. I ended up using 2.12.3 which contains a fix.
Seconded, 2.12.3 contained the fix for this.
Apparently also 2.19.1 carries the bug :(
it helps me too, really caused by the testng conflict with selenium internal version . thanks . take to use surefire 2.19.1 ,no problem now .
Link is dead and no summary in answer, so this answer is almost pointless now.
|
6

I had the same problem. It was caused by testng dependency that came with junit3. Just add a exclusion statement for it and tests should work.

<dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium</artifactId> <version>2.0b1</version> <exclusions> <exclusion> <groupId>org.testng</groupId> <artifactId>testng</artifactId> </exclusion> </exclusions> </dependency> 

1 Comment

It was the same for me a minute a go... or an hour before I found this :/ THX man
4

I got this error when trying to use @org.junit.Test

with

<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.22.2</version> </plugin> </plugins> </build> ``` The correct annotation to be used is `@org.junit.jupiter.api.Test` 

1 Comment

wow! didn't expect this at all, and yes, the automatic imports fix makes it easy to import org.junit.Test - what is this Jupiter API anyway? :/
3

I have changed "maven-surefire-plugin" to 2.14.1 version (from 2.12) and it helped

Comments

1

Had a similar problem adding jtestr dependency. It turns out one of its dependencies was picking up junit-3.8.1. I solved it using the exclusion statement below

<dependency> <groupId>org.jtestr</groupId> <artifactId>jtestr</artifactId> <exclusions> <exclusion> <groupId>org.testng</groupId> <artifactId>testng</artifactId> </exclusion> </exclusions> <version>0.6</version> <scope>test</scope> </dependency> 

Comments

1

In my case, I was running a single test using mvn test -Dtest=MyTest. My mistake was that the only test had its @test annotation commented out so no test was being found in the file by junit. Doh!

Comments

1

changed from 2.6 to 2.18.1 and things work now

Comments

1

update the org.apache.maven.plugins:maven-surefire-plugin to 2.22.0, it was resolved.

1 Comment

Welcome to StackOverflow.Please note this type of answer should be in a comment.
1

I had a similar issue. So I had to build the project from project's root level using

mvn clean install -DskipTests=True 

And then run the test command from the directory where test package's pom was residing

mvn test -Dtest=TestClass 

Also make sure that value of skip option is true. For example in my pom file, the default value of skip is true.

<properties> <skipTests>true</skipTests> </properties> <build> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <skip>${skipTests}</skip> </configuration> </plugin> </build> 

So when I run the maven test, I set it to false

mvn test -Dtest=TestUserUpdate* -DskipTests=false 

Comments

1

In the build session of the pom.xml, include this:

<build> <sourceDirectory>src</sourceDirectory> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.14.1</version> </plugin> </plugins> </build> 

1 Comment

indeed my pom.xml was missing maven-surefire-plugin entry entirely, so I skipped the other suggestions about the plugin versions - my bad
0

Try running maven in debug mode. It might give you more information.

mvn -X -Dtest=InitiateTest test 

Comments

0

I had this issue when duplicating and refactoring a test from a different class.

The issue was annotating a private method with @Test, causing it to be ignored, changing to public fixed the issue. :facepalm:

 @Test public void testImportOrderItems() { 

Comments

0

For multi-module Maven projects, specify the module using -pl and execute the Maven command from the root project. For example:

mvn test -pl=service -Dtest=InventoryServiceTest 

In my case, I was omitting -pl and was seeing "No tests were executed!".

Comments

-1

Maybe as useless as my last attempt, but I just read a JUnit 4 test class should import org.junit.Test.* and org.junit.Assert.* to be considered so. As you don't have the Assert import, it might be worth trying this quickly just to be sure...

Comments

-2
mvn test -Dtest='xxxx.*Test' -Dmaven.test.failure.ignore=true -DfailIfNoTests=false 

I have meet the same question that No tests were executed! My suggestion is add another paramters that -Dmaven.test.failure.ignore=true -DfailIfNoTests=false can solve it.

1 Comment

Ensuring that the error is not ignored does absolutely nothing to prevent the error from occurring.
-3

I don't really how the @Test annotation processes your test, but can you try prefixing your test method with "test"?

public void testInit() throws Exception { driver.get("http://localhost:8080/login.jsp"); ... } 

2 Comments

@Test annotation was introduced in jUnit 4, in jUnit 3 every method had to start with "test"
yep, that unfortunately doesn't help. @Test annotation is enough.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.