Maven Failsafe: NoClassDefFoundError для интеграционных тестов - PullRequest
0 голосов
/ 10 апреля 2019

Настройка: интеграционные тесты Kotlin в приложении с весенней загрузкой.

Тесты работают нормально, когда я запускаю их с IntelliJ. Когда я пытаюсь запустить интеграционные тесты с Maven, хотя:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-failsafe-plugin:2.19.1:integration-test (default) on project myapp: Execution default of goal org.apache.maven.plugins:maven-failsafe-plugin:2.19.1:integration-test failed: There was an error in the forked process
[ERROR] java.lang.NoClassDefFoundError: ch/cypherk/myapp/service/CustomerService
[ERROR]         at java.base/java.lang.Class.getDeclaredConstructors0(Native Method)
[ERROR]         at java.base/java.lang.Class.privateGetDeclaredConstructors(Class.java:3138)
[ERROR]         at java.base/java.lang.Class.getConstructor0(Class.java:3343)
[ERROR]         at java.base/java.lang.Class.getConstructor(Class.java:2152)
[ERROR]         at org.apache.maven.surefire.junit.PojoAndJUnit3Checker.isPojoTest(PojoAndJUnit3Checker.java:51)
...

, что очень раздражает, так как мне нужен бамбук, чтобы управлять проклятыми вещами.

CustomerService - это интерфейс, и да, он скомпилирован, в каталоге ./target maven имеется соответствующий файл .class, и IntelliJ настроен для его использования.

Не могу понять, почему это не работает, и был бы признателен за помощь с плагином.

Relavant выдержка из pom.xml:

<plugin>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.22.0</version>
    <configuration>
        <!-- doesn't make a difference if `true` or `false`-->
        <useSystemClassLoader>false</useSystemClassLoader>
    </configuration>
</plugin>
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-failsafe-plugin</artifactId>
    <version>2.19.1</version>
    <executions>
        <execution>
            <goals>
                <goal>integration-test</goal>
                <goal>verify</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <includes>
            <include>**/*IT*</include>
        </includes>
        <excludes>
            <exclude>**/ui/*</exclude>
        </excludes>
        <trimStackTrace>false</trimStackTrace>
    </configuration>
</plugin>

Полный pom.xml: http://freetexthost.com/dbghyawijj

Полный журнал неудачного шага интеграционного теста: http://freetexthost.com/gbsmd3mwm2

...