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 开发者_StackOverflowfor 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.
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.
Perhaps you are seeing this bug, which is said to affect surefire 2.12 but not 2.11?
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>
I have changed "maven-surefire-plugin" to 2.14.1 version (from 2.12) and it helped
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
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>
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!
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>
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
changed from 2.6 to 2.18.1 and things work now
update the org.apache.maven.plugins:maven-surefire-plugin to 2.22.0, it was resolved.
Try running maven in debug mode. It might give you more information.
mvn -X -Dtest=InitiateTest test
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() {
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...
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.
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");
...
}
精彩评论