Моего родителя П содержит maven-surefire-plugin
и maven-failsafe-plugin
конфигурации, определяющей <groups>
и <excludedGroups>
Params, как показано ниже, используя мой интерфейс com.adam.testutil.IntegrationTest
для JUnit 4 @Category
аннотации, чтобы отметьте любой тест как тест интеграции.Есть ли интерфейс в библиотеке третьей стороной использовать для JUnit @Category()
Все модули под родительским помпом (а не только те, у кого есть интеграционные тесты) потребуют com.adam.testutil.IntegrationTest
по их пути к классам, чтобы запускались надежные и отказоустойчивые плагины, иначе они бросают ClassNotFoundException
.
Таким образом, класс должен быть в модуле, который все модули должны объявлять как зависимость. Я бы предпочел объявить его как зависимость в родительском pom , поэтому все модули наследуют его автоматически, но это создаст проблему с циклической зависимостью, которая остановит работу mvn.
Фактически, даже если в модуле нет модульных или интеграционных тестов, модуль все равно должен объявлять зависимость.
Я также должен сделать модуль, содержащий com.adam.testutil.IntegrationTest
первый модуль в порядке сборки, в противном случае он не будет доступен при первоначальной установке на любых новых системах. Я получаю дилемму курица и яйцо - я не могу просто запустить mvn install
в пустой репозиторий, потому что зависимость с IntegrationTest
еще не находится в локальном репозитории.
На самом деле я особо не хочу создавать новый модуль, чтобы обеспечить IntegrationTest
. Было бы намного проще, если бы JUnit включил в библиотеку подходящий класс org.junit.IntegrationTest
.
Хотя я думаю, что @Cateogry
- отличный способ аннотировать тесты, чтобы отметить их как интеграционные тесты, в многомодульном проекте у него есть все эти недостатки.
Есть ли подходящий или подходящий интерфейс, где-то я мог бы использовать вместо того, чтобы иметь свой собственный?
В худшем случае, насколько JUnit, @Category
, maven-surefire-plugin и maven-failafe-plugin заинтересованы, я мог бы использовать интерфейс в JDK, например. java.lang.Cloneable - хотя любой, кто читает код, задается вопросом, что происходит на земле.
Я надеялся, что у Юнит будет что-то, но я не нашел ничего полезного.
Я мог бы просто установить зависимость от сторонней библиотеки в моем родительском помпе, и все будет хорошо.
Я согласен с ответом от любого, предлагающего подходящий интерфейс от сторонней библиотеки, где имя интерфейса не будет вызывать немедленные вопросы от любого, кто читает код в первый раз.
import org.junit.experimental.categories.Category
import com.adam.testutil.IntegrationTest
@Category(IntegrationTest.class)
public DbAndJpaIntegrationTests {
...
}
.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.18.1</version>
<configuration>
<excludedGroups>com.bp.gis.util.HeavyTest
</excludedGroups>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.18.1</version>
<configuration>
<includes>
<include>**/*.java</include>
</includes>
<groups>com.bp.gis.util.HeavyTest</groups>
</configuration>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
</goals>
</execution>
</executions>
</plugin>
* Проблема то в том, что каждый модуль в проекте должен иметь зависимость тянуть в com.adam. testutil.IntegrationTest * Какая зависимость требуется здесь? – nullpointer
Не могли бы вы также указать, где находится «IntegrationTest» в настоящее время и какова структура вашего модуля на данный момент? – nullpointer
Я перефразировал вопрос, чтобы ответить на ваши вопросы. – Adam