Запуск одного теста в 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>
у меня была аналогичная проблема. Так что мне пришлось построить проект из корневого уровня проекта используя
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>
в сеансе сборки 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");
...
}