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 PMandroidTestImplementation
dave08
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 more
dave08
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 test
LeoColman
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