Как запустить совместимые тесты на основе 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.
Другие вопросы по тегам