Как развернуть войну через maven перед запуском интеграционных тестов junit4? - PullRequest
0 голосов
/ 31 октября 2019

Я хочу, чтобы maven развернул войну перед запуском тестов jUnit.

Я добавил плагин failsafe и конфигурацию, но после тестов развертывание все еще выполняется.

Тесты не запускаются плагином failsafe?

<build>
    <finalName>testWar</finalName>
    <plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-failsafe-plugin</artifactId>
        <version>2.16</version>
        <configuration>
            <systemPropertyVariables>
                <wildfly.remote.port>10090</wildfly.remote.port>
            </systemPropertyVariables>
        </configuration>
        <executions>
            <execution>
                <goals>
                    <goal>integration-test</goal>
                    <goal>verify</goal>
                </goals>
            </execution>
        </executions>
    </plugin>

    <plugin>
        <groupId>org.wildfly.plugins</groupId>
        <artifactId>wildfly-maven-plugin</artifactId>
        <version>1.2.1.Final</version>

        <configuration>
            <hostname>host</hostname>
            <port>10090</port>
            <username>user</username>
            <password>pw</password>
        </configuration>

        <executions>
            <execution>
                <id>wildfly-run</id>
                <phase>pre-integration-test</phase>
                <goals>
                    <goal>deploy</goal>
                </goals>

            </execution>
        </executions>
    </plugin>
</plugins>
</build>

1 Ответ

1 голос
/ 02 ноября 2019

Поведение, которое вы сообщаете, предполагает, что ваши тесты выполняются в фазе test вместо фазы integration-test. Это связано с тем, что по умолчанию оба подключаемых модуля Maven Surefire и Maven Failsafe используют соглашения об именах классов для различения двух типов тестов, как описано ниже:

Поведение модульного теста по умолчанию

Плагин Maven Surefire запускает юнит тестов в фазе test. По умолчанию он выбирает тесты для выполнения на основе имени класса теста, как описано в Maven Surefire Plugin |Включения и исключения тестов :

  • "** / Test * .java" - включает все его подкаталоги и все имена файлов Java, начинающиеся с "Test".
  • "** / * Test.java" - включает в себя все его подкаталоги и все имена файлов Java, которые заканчиваются на "Test".
  • "** / * Tests.java" - включает в себя все его подкаталоги и все Javaимена файлов, оканчивающиеся на «Tests».
  • «** / * TestCase.java» - включает все его подкаталоги и все имена файлов Java, оканчивающиеся на «TestCase».

По умолчаниюПоведение интеграционных тестов

Плагин Maven Failsafe выполняет интеграционные тесты тесты в фазе integration-test. По умолчанию он также выбирает тесты для выполнения на основе имени класса теста, как описано в [Maven Failsafe Plugin |Включения и исключения из тестов] (https://maven.apache.org/surefire/maven-failsafe-plugin/examples/inclusion-exclusion.html:

  • "** / IT * .java" - включает все его подкаталоги и все имена файлов Java, которые начинаются с "IT".
  • "** / * IT.java" - включает все его подкаталоги и все имена файлов Java, оканчивающиеся на "IT".
  • "** / * ITCase.java" - включает все его подкаталоги и всеИмена файлов Java, оканчивающиеся на «ITCase».

Поэтому вам, вероятно, просто нужно переименовать классы интеграционных тестов в соответствии с одним из трех соглашений, указанных выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...