Unit Tests for android and common module not working

Hi,

I setup my mpp (ios/android) by following instructions of this article https://medium.com/better-programming/a-multi-platform-library-with-kotlin-episode-1-6c0f46d49944

Everythink is working except unit tests for android and common module. Unit tests for ios module are working.

Here is my build.gradle file:

buildscript {
    ext.kotlin_version = '1.3.72'

    repositories {
        maven {
            url "https://plugins.gradle.org/m2/"
        }
    }

    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

def kotlinPluginId = 'kotlin-multiplatform'
final hasPlugin = project.getPlugins().hasPlugin(kotlinPluginId);
if (hasPlugin) {
    final Plugin plugin = project.getPlugins().getPlugin(kotlinPluginId)
    println 'Plugin already applied - version ' + plugin.properties['kotlinPluginVersion']
} else {
    apply plugin: "kotlin-multiplatform"
}

repositories {
    mavenCentral()
}
group 'de.getslash.cc'
version '0.0.1'

apply plugin: 'maven-publish'

kotlin {
    targets {
        final def iOSTarget = System.getenv('SDK_NAME')?.startsWith("iphoneos")   \
                                ? presets.iosArm64 : presets.iosX64

        fromPreset(iOSTarget, 'ios') {
            binaries {
                framework('MyFramework')
            }
        }

        fromPreset(presets.jvm, 'android')
    }

    sourceSets {
        commonMain.dependencies {
            api 'org.jetbrains.kotlin:kotlin-stdlib-common'
        }

        androidMain.dependencies {
            api 'org.jetbrains.kotlin:kotlin-stdlib'
        }

        iosMain.dependencies {}
    }
}

configurations {
    compileClasspath
}

task packForXcode(type: Sync) {
    final File frameworkDir = new File(buildDir, "xcode-frameworks")
    final String mode = project.findProperty("XCODE_CONFIGURATION")?.toUpperCase() ?: 'DEBUG'
    final def framework = kotlin.targets.ios.binaries.getFramework("MyFramework", mode)

    inputs.property "mode", mode
    dependsOn framework.linkTask

    from { framework.outputFile.parentFile }
    into frameworkDir

    doLast {
        new File(frameworkDir, 'gradlew').with {
            text = "#!/bin/bash\nexport 'JAVA_HOME=${System.getProperty("java.home")}'\ncd '${rootProject.rootDir}'\n./gradlew \$@\n"
            setExecutable(true)
        }
    }
}

tasks.build.dependsOn packForXcode

Can somebody help?

Thanks

Ok, I fixed it by changing the sourceSets to:

sourceSets {
    commonMain {
        dependencies {
            implementation kotlin('stdlib-common')
        }
    }

    commonTest {
        dependencies {
            implementation kotlin('test-common')
            implementation kotlin('test-annotations-common')
        }
    }

    androidMain {
        dependencies {
            implementation kotlin('stdlib')
        }
    }

    androidTest {
        dependencies {
            implementation kotlin('test')
            implementation kotlin('test-junit')
        }
    }

    iosMain.dependencies {}
}