Как указать пользовательский бегун JUnit для плагина Surefire Maven? - PullRequest
3 голосов
/ 17 октября 2011

Предположим, у меня есть junit пользовательский загрузчик классов, который считывает тестовые данные из текстового файла и создает и запускает тесты во время выполнения.Бегун не использует тестовый класс.

Теперь я хотел бы запустить его с surefire плагином maven.То есть я хотел бы указать бегуна в качестве параметра для «исполнения» плагина surefire в pom.xml.

Можно ли это сделать?

Ответы [ 3 ]

4 голосов
/ 17 октября 2011

Нет. Насколько я знаю, нет способа указать класс Runner в maven-surefire-plugin. Однако вы должны иметь возможность создать один тестовый класс и использовать @RunWith(YourRunner.class), чтобы он мог работать с вашим пользовательским бегуном.

Я думаю, это потому, что предполагаемый вариант использования для Runner s основан на для каждого теста , а не на уровне проекта. Вы можете иметь проект со смешанным использованием различных бегунов, например, некоторые основаны на Spring, некоторые параллельны, некоторые работают с JUnit3, некоторые с JUnit4 и т. д.

0 голосов
/ 17 мая 2016

В моем проекте я решаю ту же задачу с помощью плагина exec-maven-plugin

У меня есть пользовательский Runner, который запускает тест junit со специальными параметрами. Я запускаю своего бегуна с помощью команды maven: mvn test -Dparam1 = value1 -Dparam2 = value2 -Dparam3 = value3

В pom.xml:

        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <version>1.5.0</version>
            <executions>
                <execution>
                    <phase>test</phase>
                    <goals>
                        <goal>java</goal>
                    </goals>
                    <configuration>
                        <classpathScope>test</classpathScope>
                        <mainClass>com.example.domain.MyMainClass</mainClass>
                    </configuration>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.19.1</version>
            <configuration>
                <skipTests>true</skipTests>
            </configuration>
        </plugin>
0 голосов
/ 16 декабря 2011

В зависимости от того, чего вы хотите достичь, вы можете повлиять на поведение теста в глобальном масштабе, используя пользовательский RunListener.Вот как настроить его с помощью плагина Maven Surefire: http://maven.apache.org/plugins/maven-surefire-plugin/examples/junit.html#Using_custom_listeners_and_reporters

(я отправил такой же ответ на аналогичный вопрос, а именно: Глобально устанавливая JNnit runner вместо @ RunWith )

...