Reputation: 13558
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.
Upvotes: 33
Views: 45127
Reputation: 77231
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.
Upvotes: 13
Reputation: 370
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() {
Upvotes: 0
Reputation: 976
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
Upvotes: 4
Reputation: 11
update the org.apache.maven.plugins:maven-surefire-plugin to 2.22.0, it was resolved.
Upvotes: 1
Reputation: 1081
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
Upvotes: 1
Reputation: 748
Perhaps you are seeing this bug, which is said to affect surefire 2.12 but not 2.11?
Upvotes: 13
Reputation: 9
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.
Upvotes: -2
Reputation: 3357
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>
Upvotes: 1
Reputation: 5316
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!
Upvotes: 1
Reputation: 39
I have changed "maven-surefire-plugin" to 2.14.1 version (from 2.12) and it helped
Upvotes: 3
Reputation: 1107
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>
Upvotes: 1
Reputation: 61
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>
Upvotes: 6
Reputation: 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...
Upvotes: -1
Reputation: 1
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");
...
}
Upvotes: -3
Reputation: 274848
Try running maven in debug mode. It might give you more information.
mvn -X -Dtest=InitiateTest test
Upvotes: 0