32

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.

Meraj al Maksud
  • 1,528
  • 2
  • 22
  • 36
John Manak
  • 13,328
  • 29
  • 78
  • 119
  • What kind of test are you trying to run? You did not put an @Ignore by any chance? – Navi Jan 10 '11 at 10:59
  • Probably not too helpful..but remember, both those are beta products and mightily subject to breaking all over the place. – mezmo Jan 10 '11 at 20:35

16 Answers16

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.

Ahmad Al-Kurdi
  • 2,248
  • 3
  • 23
  • 39
krosenvold
  • 75,535
  • 32
  • 152
  • 208
12

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

joel truher
  • 742
  • 7
  • 18
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>
pete
  • 61
  • 1
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

BabaNew
  • 884
  • 1
  • 13
  • 27
  • 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? :/ – hello_earth Aug 14 '20 at 08:58
3

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

johndoe
  • 39
  • 1
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!

Farrukh Najmi
  • 5,055
  • 3
  • 35
  • 54
1

changed from 2.6 to 2.18.1 and things work now

Kalpesh Soni
  • 6,879
  • 2
  • 56
  • 59
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>
Roberto Rodriguez
  • 3,179
  • 32
  • 31
  • 1
    indeed my pom.xml was missing maven-surefire-plugin entry entirely, so I skipped the other suggestions about the plugin versions - my bad – hello_earth Jul 30 '20 at 09:59
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
AJC
  • 981
  • 10
  • 17
1

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

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> 
dantheta
  • 1,107
  • 2
  • 13
  • 29
0

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

mvn -X -Dtest=InitiateTest test
dogbane
  • 266,786
  • 75
  • 396
  • 414
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() {
Kyle Dunn
  • 380
  • 1
  • 9
-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...

blaguman
  • 1
  • 1
-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.

Petter Friberg
  • 21,252
  • 9
  • 60
  • 109
-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");
      ...
}
blaguman
  • 1
  • 1