failsafe
(а также surefire
) внутренне заменяет java
-вхождения в include
-matcher на class
. Это означает, что вы не можете использовать **/*IT.kt
там, но вам нужно использовать **/*IT.java
вместо (или **/*Test.java
в случае surefire
). Не имеет значения, есть ли у вас java -файлы там.
Другое предположение, что вы забыли сказать компилятору kotlin, что он должен компилировать эти файлы и в src/it/kotlin
, то есть:
<plugin>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-maven-plugin</artifactId>
<version>${kotlin.version}</version>
<executions>
<execution>
<id>test-compile</id>
<phase>test-compile</phase>
<goals>
<goal>test-compile</goal>
</goals>
<configuration>
<sourceDirs>
<source>src/test/kotlin</source>
<source>src/it/kotlin</source>
</sourceDirs>
</configuration>
</execution>
</executions>
</plugin>
Немного связано: документация по добавлению Java и Kotlin исходных папок . В вашем случае это 2 Kotlin исходных папок вместо Java и Kotlin (это также причина, по которой вам не нужно перезаписывать maven-compiler-plugin
-конфигурацию).
Это единственное, что я вижу, что может отсутствовать. Остальное должно быть в порядке.