Ответ 1
Вы, вероятно, собираете JUnit3 в своем пути к классам, что эффективно отключает JUnit4.
Запустите mvn dependency: tree, чтобы узнать, откуда он входит, и добавьте исключение в зависимость.
Когда я запускаю один тест в 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();
} }
UPDATE:
Это вызвано добавлением этой зависимости в POM:
<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>
Это странно.
Вы, вероятно, собираете JUnit3 в своем пути к классам, что эффективно отключает JUnit4.
Запустите mvn dependency: tree, чтобы узнать, откуда он входит, и добавьте исключение в зависимость.
Возможно, вы видите эту ошибку, которая, как говорят, влияет на 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) и помог
Была аналогичная проблема, связанная с зависимостью 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 и теперь все работает
У меня была аналогичная проблема. Поэтому я должен был построить проект из корневого уровня проекта, используя
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
В моем случае я запускал один тест, используя mvn test -Dtest = MyTest. Моя ошибка заключалась в том, что в единственном тесте была отмечена аннотация @test, поэтому в файле junit не было найдено никаких тестов. Doh!
В сеансе сборки 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.Test. * и org.junit.Assert. *. Поскольку у вас нет импорта Assert, возможно, стоит попробовать это быстро, чтобы быть уверенным...
Я действительно не понимаю, как аннотация @Test обрабатывает ваш тест, но можете ли вы попробовать префикс вашего тестового метода с помощью "теста"?
public void testInit() throws Exception {
driver.get("http://localhost:8080/login.jsp");
...
}
mvn test -Dtest='xxxx.*Test' -Dmaven.test.failure.ignore=true -DfailIfNoTests=false
У меня есть тот же вопрос, что не было выполнено никаких тестов!
Мое предложение добавляет еще один параметр, который -Dmaven.test.failure.ignore=true -DfailIfNoTests=false
может решить.