Как запустить совместимые тесты на основе junit4 с maven?
Мой pom.xml выглядит так:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.demo.DemoTestSteps</groupId>
<artifactId>DemoTestSteps</artifactId>
<version>1.0-SNAPSHOT</version>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.0</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.11</version>
<configuration>
<includes>
<include>**/*.java</include>
</includes>
<systemPropertyVariables>
<propertyName>concordion.output.dir</propertyName>
<buildDirectory>target/concordion</buildDirectory>
</systemPropertyVariables>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.concordion</groupId>
<artifactId>concordion</artifactId>
<version>1.4.3</version>
<scope>test</scope>
</dependency>
</dependencies>
Вот мой тестовый класс:
package application;
import org.concordion.integration.junit3.ConcordionTestCase;
public class Application extends ConcordionTestCase {
public void runTest() {
}
}
Итак, когда я запускаю тест с помощью mvn clean test
, тест выполнен. Однако, если я немного изменю тестовый класс, чтобы он использовал juni4, выполнение предыдущей команды ничего не выполнит.
package application;
import org.concordion.integration.junit4.ConcordionRunner;
@RunWith(ConcordionRunner.class)
public class Application {
public void runTest() {
}
}
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running TestSuite
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.412 sec
Results :
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 5 seconds
[INFO] Finished at: Fri Feb 01 16:58:18 EET 2013
[INFO] Final Memory: 26M/62M
[INFO] ------------------------------------------------------------------------
Кто-нибудь знает, как преодолеть эту проблему?
1 ответ
Решение
Я только что попытался использовать ваши классы pom.xml и java, и это работает для меня.
Мне действительно нужно исправить отсутствующий импорт RunWith в случае JUnit 4. Возможно, вы захотите проверить, почему вы не получаете ошибку компиляции на этом?
Версии, с которыми он работает:
- Apache Maven 3.0.4 (r1232337; 2012-01-17 21: 44: 56 + 1300)
- Версия Java: 1.6.0_30, поставщик: Sun Microsystems Inc.