LeoColman
01/08/2020, 4:55 PM./gradlew test do all tests run?dave08
01/09/2020, 10:51 AM.... > initializationError FAILED
java.lang.reflect.InvocationTargetException
Caused by: java.lang.NoClassDefFoundError at ....
But the class is in the module... 🤔dave08
01/09/2020, 10:51 AMLeoColman
01/09/2020, 1:04 PMLeoColman
01/09/2020, 1:04 PMLeoColman
01/09/2020, 1:05 PMdave08
01/09/2020, 1:05 PMLeoColman
01/09/2020, 1:05 PMLeoColman
01/09/2020, 1:05 PMdave08
01/09/2020, 1:05 PMIf you are using Gradle+Kotlin, this works for both Android and non-Android projects:
Kotlin (build.gradle.kts)
tasks.withType<Test> {
useJUnitPlatform()
}
dependencies {
testImplementation("io.kotlintestkotlintest runner junit53.3.0")
}
dave08
01/09/2020, 1:06 PMLeoColman
01/09/2020, 1:06 PMtestImplementation it worksLeoColman
01/09/2020, 1:06 PMandroidTestImplementationdave08
01/09/2020, 1:06 PMLeoColman
01/09/2020, 1:06 PMtestImplementation is plain unit testsLeoColman
01/09/2020, 1:06 PMtestImplementation is failing?LeoColman
01/09/2020, 1:06 PMdave08
01/09/2020, 1:07 PMdave08
01/09/2020, 1:08 PMdave08
01/09/2020, 1:08 PMdave08
01/09/2020, 1:10 PMdave08
01/09/2020, 1:10 PMLeoColman
01/09/2020, 1:12 PMLeoColman
01/09/2020, 1:12 PMLeoColman
01/09/2020, 1:13 PMdave08
01/09/2020, 1:13 PMInternal Error occurred.
java.util.NoSuchElementException
at java.util.ArrayList$Itr.next(ArrayList.java:862)
at java.util.Collections$UnmodifiableCollection$1.next(Collections.java:1042)
at com.intellij.junit5.JUnit5TestRunnerUtil.createSelector(JUnit5TestRunnerUtil.java:202)
at com.intellij.junit5.JUnit5TestRunnerUtil.buildRequest(JUnit5TestRunnerUtil.java:82)
at com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs(JUnit5IdeaTestRunner.java:55)
at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)dave08
01/09/2020, 1:13 PMLeoColman
01/09/2020, 1:14 PMdave08
01/09/2020, 1:17 PMClassNotFoundException I got on the command line, with an initialization error.LeoColman
01/09/2020, 1:19 PMdave08
01/09/2020, 1:22 PMCaused by: java.lang.ClassNotFoundException: net.bytebuddy.dynamic.MethodTransformer$Simple
at <http://java.net|java.net>.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 29 moredave08
01/09/2020, 1:22 PMCaused by: java.lang.NoClassDefFoundError: net/bytebuddy/dynamic/MethodTransformer$Simple
at org.mockito.internal.creation.bytebuddy.MockBytecodeGenerator.generateMockClass(MockBytecodeGenerator.java:38)
at org.mockito.internal.creation.bytebuddy.CachingMockBytecodeGenerator$CachedBytecodeGenerator.generate(CachingMockBytecodeGenerator.java:72)
at org.mockito.internal.creation.bytebuddy.CachingMockBytecodeGenerator$CachedBytecodeGenerator.getOrGenerateMockClass(CachingMockBytecodeGenerator.java:64)
at org.mockito.internal.creation.bytebuddy.CachingMockBytecodeGenerator.get(CachingMockBytecodeGenerator.java:27)
at org.mockito.internal.creation.bytebuddy.ByteBuddyMockMaker.createProxyClass(ByteBuddyMockMaker.java:54)
at org.mockito.internal.creation.bytebuddy.ByteBuddyMockMaker.createMock(ByteBuddyMockMaker.java:27)
at org.mockito.internal.util.MockUtil.createMock(MockUtil.java:32)
at org.mockito.internal.MockitoCore.mock(MockitoCore.java:55)
at org.mockito.Mockito.mock(Mockito.java:1449)
at org.mockito.Mockito.mock(Mockito.java:1362)dave08
01/09/2020, 1:23 PMLeoColman
01/09/2020, 1:25 PMLeoColman
01/09/2020, 1:25 PMLeoColman
01/09/2020, 1:25 PMLeoColman
01/09/2020, 1:26 PMdave08
01/09/2020, 1:26 PMdave08
01/09/2020, 1:26 PMdave08
01/09/2020, 1:27 PMLeoColman
01/09/2020, 1:27 PMandroidTestImplementation("io.kotlintest:kotlintest-runner-junit4:3.4.2") { exclude(module = "objenesis") }LeoColman
01/09/2020, 1:27 PMBut if Mockito is older, wouldn't KotlinTest maybe count on some new features that won't exist?I don't think so. We depend on that for very specific features, such as mocking
LocalDate.now()LeoColman
01/09/2020, 1:27 PMI think the syntax is similar to this:(This is actually a case where I had to exclude something for android, as Objenesis doesn't work with older androids)
dave08
01/09/2020, 1:34 PMtestImplementation("io.kotlintest:kotlintest-runner-junit5:3.4.2") {
exclude(module = "byte-buddy")
}
Maybe I should add the group?LeoColman
01/09/2020, 1:35 PMdave08
01/09/2020, 1:42 PM+--- org.mockito:mockito-core:1.10.19 -> 2.0.52-beta
| +--- net.bytebuddy:byte-buddy:1.3.16 -> 1.9.3
| \--- org.objenesis:objenesis:2.1 -> 2.6
(where Mockk is the one requiring 1.9.3), this could be my problem?LeoColman
01/09/2020, 1:43 PMLeoColman
01/09/2020, 1:44 PMLeoColman
01/09/2020, 1:44 PMdave08
01/09/2020, 1:46 PMdave08
01/09/2020, 1:50 PMLeoColman
01/09/2020, 1:50 PMLeoColman
01/09/2020, 1:50 PMLeoColman
01/09/2020, 1:51 PMdave08
01/09/2020, 1:51 PMdave08
01/09/2020, 1:58 PMLeoColman
01/09/2020, 1:59 PMLeoColman
01/09/2020, 1:59 PMLeoColman
01/09/2020, 1:59 PMLeoColman
01/09/2020, 1:59 PMdave08
01/09/2020, 1:59 PMLeoColman
01/09/2020, 1:59 PMLeoColman
01/09/2020, 2:00 PM./gradlew testLeoColman
01/09/2020, 2:00 PMLeoColman
01/09/2020, 2:00 PMLeoColman
01/09/2020, 2:00 PMdave08
01/09/2020, 2:01 PMLeoColman
01/09/2020, 2:02 PMLeoColman
01/09/2020, 2:02 PMdave08
01/09/2020, 2:02 PMLeoColman
01/09/2020, 2:02 PMLeoColman
01/09/2020, 2:03 PMLeoColman
01/09/2020, 2:03 PMdave08
01/09/2020, 2:04 PMdave08
01/09/2020, 2:04 PMLeoColman
01/09/2020, 2:05 PMLeoColman
01/09/2020, 2:05 PMLeoColman
01/09/2020, 2:06 PMLeoColman
01/09/2020, 2:06 PMLeoColman
01/09/2020, 2:06 PMdave08
01/09/2020, 2:08 PMsam
01/09/2020, 2:12 PMLeoColman
01/09/2020, 2:13 PMLeoColman
01/09/2020, 2:13 PMsam
01/09/2020, 2:14 PMLeoColman
01/09/2020, 2:15 PMLeoColman
01/09/2020, 2:15 PMsam
01/09/2020, 2:15 PMsam
01/09/2020, 2:15 PM