Где я должен разместить интеграционные тестовые помощники / утилиты? - PullRequest
0 голосов
/ 29 января 2019

Я добавляю интеграционные тесты в проект Maven.Моя структура папок выглядит примерно так:

  • src / main / java

  • src / test / java

  • src /grationtest / java

Чтобы запустить интеграционные тесты, мне нужно написать некоторый код для интеграции в API и в Azure Keyvault.

1) Я бы хотел придерживаться конвенций maven и стараться сделать все как можно более организованным.Куда должен идти весь этот код?На него будут ссылаться все интеграционные тесты.

  • src / keyvaultapi / java?

  • src / Integrationtest / keyvaultapi?

2)Как я могу получить доступ к этому коду из интеграционных тестов?

Сейчас я добавил в свой pom.xml следующее:

        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>build-helper-maven-plugin</artifactId>
            <version>1.10</version>
            <executions>
                <execution>
                    <id>add-test-source</id>
                    <phase>process-resources</phase>
                    <goals>
                        <goal>add-test-source</goal>
                    </goals>
                    <configuration>
                        <sources>
                            <source>src/integrationtest/java</source>
                        </sources>
                    </configuration>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-failsafe-plugin</artifactId>
            <version>2.22.1</version>
            <executions>
                <execution>
                    <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

1 Ответ

0 голосов
/ 29 января 2019

Папка "интеграционные тесты" по умолчанию - / src / it, но мне она тоже не нравится.Слишком коротко.:)

Полезно добавить некоторый префикс или постфикс (например, «IT») для классов интеграционных тестов: MySuperApiIT.java

Ваш раздел build-helper-maven-plugin неправильный и не полный, должно быть что-то вроде этого:

<execution>
    <id>add-integration-test-sources</id>
    <phase>generate-test-sources</phase>
    <goals>
        <goal>add-test-source</goal>
    </goals>
    <configuration>
        <sources>
            <source>src/integrationtest/java</source>
        </sources>
    </configuration>
</execution>
<execution>
    <id>add-integration-test-resources</id>
    <phase>generate-test-resources</phase>
    <goals>
        <goal>add-test-resource</goal>
    </goals>
    <configuration>
        <resources>
            <resource>
                <directory>src/integrationtest/resources</directory>
            </resource>
        </resources>
    </configuration>
</execution>

Кроме того, лучше не запускать интеграционный тест «по умолчанию», а связать их с каким-либо профилем.

Очень хорошее HOWTO: https://www.petrikainulainen.net/programming/maven/integration-testing-with-maven/

Еще один пример: https://github.com/Gmugra/net.cactusthorn.maven

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