Open davidsowerby opened 5 years ago
Can you attach your project, or link to it, so I can reproduce this?
I'll put up a sample project - give me a day or so ...
I've put up a sample project which seems to confirm my suspicion that it is a runner change that is needed.
I also noticed that when the test run fails under these conditions, the build is still reported as successful:
╔════════════════════════════╗
║ Building kobalt-kotlintest ║
╚════════════════════════════╝
───── kobalt-kotlintest:compile ───── kobalt-kotlintest:compileTest ───── kobalt-kotlintest:test Running tests with JUnit 4
***** ERROR Error: java.lang.NoClassDefFoundError: io/kotlintest/specs/BehaviorSpec
Thread report ╔════════════════════════════════════════╗ ║ Time (sec) ║ Thread 12 ║ ╠════════════════════════════════════════╣ ║ 0 ║ kobalt-kotlintest ║ ╚════════════════════════════════════════╝ ╔═════════════════════════════════════════════════════════╗ ║ Project ║ Build status║ Time ║ ╠═════════════════════════════════════════════════════════╣ ╚═════════════════════════════════════════════════════════╝ PARALLEL BUILD SUCCESSFUL (0 SECONDS), sequential build would have taken 0 seconds 10:12:35: Task execution finished 'test'.
There was a bug in how Kobalt detects whit JUnit runner to use (it mistakenly used JUnit 4).
With 1.0.117, JUnit 5 is correctly detected on your project, however, I'm now getting different errors after that. I suspect the way to invoke and build JUnit 5 tests has slightly changed since last time I wrote this code.
Do you have a Gradle build that works on your tests, something I could compare with?
In the meantime, you can run ./kobaltw --update
to update to 117 and try again. You'll see a lot of warnings during discovery and finally a compilation error.
That was quick. I can see the warnings and the compile error in Build.kt. I've put up a Gradle equivalent, but limited both the Gradle and Kobalt builds to KotlinTest3 - just makes things easier. Let me know if you need KotlinTest2
I've also added a failing test to both, and used KotlinTest's in-built assertions as a more realistic scenario. Interestingly these caused a compile error, because the test is still using the KotlinTest 2.0.7 library.
Knowing this sometimes happens in IDEA, I tried re-importing - but that refused to work because of the compile error.
Attempting to run tests with KotlinTest causes the error below. I think it is simply because the Kobalt
KotlinTestRunner
is based on JUnit4. KotlinTest uses JUnit5, from version 3.0.0 I believe, which would have been after you added KotlinTest support at #312