Запуск одного теста в maven - > тесты не были выполнены!

когда я запускаю один тест в Maven с помощью этой команды:

mvn test -Dtest=InitiateTest

Я получаю следующий результат:

No tests were executed!

он работал пару минут назад, но теперь по какой-то причине перестал работать. Я пытался бежать mvn clean пару раз перед запуском теста это не помогает.

тест выглядит так:

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();

} }

обновление:

это вызвано добавлением этой зависимости к Пом:

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

когда я удалить его, все работает нормально. Все работает нормально, даже когда я добавляю эти две зависимости вместо предыдущей:

<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>

это странно.

13 ответов


вы, вероятно, поднимаете JUnit3 на своем пути к классам где-то, что эффективно отключает JUnit4.

запустите зависимость mvn: дерево, чтобы узнать, откуда она поступает, и добавьте исключение в зависимость.


возможно, вы видите этот баг, что, как говорят, влияет на surefire 2.12, но не 2.11?


У меня была та же проблема. Это было вызвано зависимостью testng, которая пришла с junit3. Просто добавьте оператор исключения для него, и тесты должны работать.

<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>

Я изменил "maven-surefire-plugin" на версию 2.14.1 (от 2.12), и это помогло


у меня была аналогичная проблема. Так что мне пришлось построить проект из корневого уровня проекта используя

mvn clean install -DskipTests=True

а то запустите тестовую команду из каталога, где POM тестового пакета проживает

mvn test -Dtest=TestClass

также убедитесь, что значение параметра skip равно true. Например, в моем файле pom значение по умолчанию skip равно 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>

поэтому, когда я запускаю тест maven, я устанавливаю его в false

mvn test -Dtest=TestUserUpdate* -DskipTests=false

попробуйте запустить Maven в режиме отладки. Это может дать вам больше информации.

mvn -X -Dtest=InitiateTest test

была аналогичная проблема с добавлением зависимости jtestr. Оказывается, одной из его зависимостей был сбор junit-3.8.1. Я решил это, используя оператор исключения ниже

<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> 

изменен с 2.6 на 2.18.1, и это все еще помогает


в сеансе сборки pom.xml, включите это:

 <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>

может быть, так же бесполезно, как и моя последняя попытка, но я только что прочитал тестовый класс JUnit 4 должен импортировать org.тесты JUnit.Тест.* и org.тесты JUnit.Утверждать.* считать так. Поскольку у вас нет импорта Assert, возможно, стоит попробовать это быстро, чтобы быть уверенным...


в моем случае я запускал один тест, используя mvn test-Dtest=MyTest. Моя ошибка заключалась в том, что единственный тест был прокомментирован аннотацией @test, поэтому тест не был найден в файле junit. Дох!


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

Я встретил тот же вопрос, что и тесты не были выполнены! Мое предложение-добавить еще один параметр, который -Dmaven.test.failure.ignore=true -DfailIfNoTests=false может ее решить.


Я действительно не знаю, как аннотация @Test обрабатывает ваш тест, но можете ли вы попробовать префикс вашего метода теста с помощью "test"?

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