In fact that 4.1.3 version gives me problems with ...
# kotest
c
In fact that 4.1.3 version gives me problems with the Kotest plugin
s
Can you show me the errors? Or create an issue with the stack traces?
c
Of course, but I still wonder why this 4.1.3 version only exists for me and my Gradle but the Github repository acts as If it never existed.
Copy code
Exception in thread "main" java.lang.NoClassDefFoundError: io/github/classgraph/ClassGraph
	at io.kotest.core.config.DetectConfigKt.detectConfig(detectConfig.kt:61)
	at io.kotest.core.config.Project.<clinit>(Project.kt:45)
	at io.kotest.core.engine.KotestEngine.<init>(KotestEngine.kt:53)
	at io.kotest.core.engine.KotestEngineLauncher.launch(KotestEngineLauncher.kt:35)
	at io.kotest.runner.console.KotestConsoleRunner.execute(KotestConsoleRunner.kt:22)
	at io.kotest.runner.console.Execute.run(launcher.kt:66)
	at com.github.ajalt.clikt.parsers.Parser.parse(Parser.kt:154)
	at com.github.ajalt.clikt.parsers.Parser.parse(Parser.kt:14)
	at com.github.ajalt.clikt.core.CliktCommand.parse(CliktCommand.kt:252)
	at com.github.ajalt.clikt.core.CliktCommand.parse$default(CliktCommand.kt:249)
	at com.github.ajalt.clikt.core.CliktCommand.main(CliktCommand.kt:267)
	at com.github.ajalt.clikt.core.CliktCommand.main(CliktCommand.kt:290)
	at io.kotest.runner.console.LauncherKt.main(launcher.kt:14)
Caused by: java.lang.ClassNotFoundException: io.github.classgraph.ClassGraph
	at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:419)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:352)
	... 13 more

Process finished with exit code 1
This is all the relevant stuff I'm loading in Gradle about this:
Copy code
testImplementation 'org.jetbrains.kotlin:kotlin-reflect:1.3.72'
    testImplementation 'io.kotest:kotest-runner-junit5-jvm:4.1.3'
    testImplementation 'io.kotest:kotest-assertions-core-jvm:4.1.3'
    testImplementation 'io.kotest:kotest-runner-console-jvm:4.1.3'
    testImplementation 'io.kotest:kotest-property-jvm:4.1.3'
if I use 4.1.2 I also get errors:
Copy code
Exception in thread "main" java.lang.ClassNotFoundException: com.carrascado.pruebaskotest.ExampleKotest
	at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:419)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:352)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:264)
	at io.kotest.runner.console.KotestConsoleRunner.execute(KotestConsoleRunner.kt:27)
	at io.kotest.runner.console.Execute$run$1.invokeSuspend(launcher.kt:67)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:56)
	at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:274)
	at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:79)
	at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:54)
	at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source)
	at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:36)
	at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source)
	at io.kotest.runner.console.Execute.run(launcher.kt:51)
	at com.github.ajalt.clikt.parsers.Parser.parse(Parser.kt:154)
	at com.github.ajalt.clikt.parsers.Parser.parse(Parser.kt:14)
	at com.github.ajalt.clikt.core.CliktCommand.parse(CliktCommand.kt:252)
	at com.github.ajalt.clikt.core.CliktCommand.parse$default(CliktCommand.kt:249)
	at com.github.ajalt.clikt.core.CliktCommand.main(CliktCommand.kt:267)
	at com.github.ajalt.clikt.core.CliktCommand.main(CliktCommand.kt:290)
	at io.kotest.runner.console.LauncherKt.main(launcher.kt:15)
s
4.1.3 is on maven central
there's just no link for it under github releases which I don't use that much, and I need to update the changelog
How are you launching the tests - are you trying to run all in a package ?
c
I play that "double play" button in the whole class, just that, they are extremely simple/nonsense tests just for trying kotest
s
If you use the double play, it shouldn't need classgraph at all, so I don't know why you would get that error
c
Anyways If I click the "single play" it gives the same error
This is my whole Gradle file, maybe something is really wrong?
Copy code
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'

android {
    compileSdkVersion 29
    buildToolsVersion "29.0.3"

    defaultConfig {
        applicationId "com.carrascado.pruebaskotest"
        minSdkVersion 27
        targetSdkVersion 29
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), '<http://proguard-rules.pro|proguard-rules.pro>'
        }
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

android.testOptions {
    unitTests.all {
        useJUnitPlatform()
    }
}

dependencies {
    implementation fileTree(dir: "libs", include: ["*.jar"])
    implementation "org.jetbrains.kotlin:kotlin-stdlib:${kotlin_version}"
    implementation 'androidx.core:core-ktx:1.3.1'
    implementation 'androidx.appcompat:appcompat:1.1.0'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    testImplementation 'junit:junit:4.13'
    androidTestImplementation 'androidx.test.ext:junit:1.1.1'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'

    testImplementation 'org.jetbrains.kotlin:kotlin-reflect:1.3.72'
    testImplementation 'io.kotest:kotest-runner-junit5-jvm:4.1.2'
    testImplementation 'io.kotest:kotest-assertions-core-jvm:4.1.2'
    testImplementation 'io.kotest:kotest-runner-console-jvm:4.1.2'
    testImplementation 'io.kotest:kotest-property-jvm:4.1.2'

//    implementation "io.arrow-kt:arrow-core:0.10.4"
//    implementation "io.arrow-kt:arrow-syntax:0.10.4"
//    kapt    "io.arrow-kt:arrow-meta:0.10.4"
}
s
Android studio ?
c
Yes
Android Studio 4.0.1
And the kotest plugin is 1.0.5
And I'm putting the test class
ExampleKotest
right there, in the unit tests package, I don't know If that may be causing the problem
Might this dependency be causing the problem?
testImplementation 'junit:junit:4.13'
Since it's junit4 but later Kotest runs on JUnit5? (Btw I didn't know Kotest needed Junit to run)
s
I think it's just that android studio does weird things with the classpaths
and that's why you're seeing these errors
you can try the latest plugin if you want but it's not released yet
c
How do I install that zip?
s
settings -> plugins click the cog
c
If I select the .zip directly it says that the plugin is "incompatible with the installation"
s
you must have an old version of studio
c
This is what it finds If I check for updates, may I need any of those things?
s
I don't know, I don't use android studio. The incompatible message is probably because the plugin defines a new version of studio than what you have
the latest is 4.0.1
c
Then that plugin is working with a version that is not a release? Because according to the toolbox I have the last release
s
ok, I will need to check into that
c
That is my version, 4.0.1
s
ok
c
By the way thank you very much for your time and help, I'm starting with Kotlin and I didn't know If I was doing something wrong or I was not setting something up correctly
s
You've done everything right.
🙂 1
I will figure out the version strings needed to make this installable by android studio
👍 1