Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Incorrect advice for testFixtures configuration in android project #1323

Open
zepurplez opened this issue Nov 26, 2024 · 1 comment
Open
Labels
bug Something isn't working toolchain:android
Milestone

Comments

@zepurplez
Copy link

Plugin version
2.5.0

Gradle version
8.11

JDK version
17

(Optional) Kotlin and Kotlin Gradle Plugin (KGP) version
1.9.24

(Optional) Android Gradle Plugin (AGP) version
8.5.2

(Optional) reason output for bugs relating to incorrect advice

------------------------------------------------------------
You asked about the dependency ':kt-lib'.
You have been advised to remove this dependency from 'testFixturesImplementation'.
------------------------------------------------------------

Shortest path from :lib to :kt-lib for debugCompileClasspath:
:lib
\--- :kt-lib

Shortest path from :lib to :kt-lib for debugRuntimeClasspath:
:lib
\--- :kt-lib

Shortest path from :lib to :kt-lib for debugUnitTestCompileClasspath:
:lib
\--- :kt-lib

Shortest path from :lib to :kt-lib for debugUnitTestRuntimeClasspath:
:lib
\--- :kt-lib

Shortest path from :lib to :kt-lib for debugAndroidTestCompileClasspath:
:lib
\--- :kt-lib

Shortest path from :lib to :kt-lib for debugAndroidTestRuntimeClasspath:
:lib
\--- :kt-lib

Shortest path from :lib to :kt-lib for releaseCompileClasspath:
:lib
\--- :kt-lib

Shortest path from :lib to :kt-lib for releaseRuntimeClasspath:
:lib
\--- :kt-lib

Shortest path from :lib to :kt-lib for releaseUnitTestCompileClasspath:
:lib
\--- :kt-lib

Shortest path from :lib to :kt-lib for releaseUnitTestRuntimeClasspath:
:lib
\--- :kt-lib

Source: debug, main
-------------------
* Uses 1 class: com.example.utils.SomeUtils (implies implementation).

Source: release, main
---------------------
* Uses 1 class: com.example.utils.SomeUtils (implies implementation).

Source: debug, test
-------------------
(no usages)

Source: release, test
---------------------
(no usages)

Source: debug, android_test
---------------------------
(no usages)

Describe the bug
So i have two modules, the first one is just pure kotlin with one util class

object SomeUtils {
    fun blabla() = println("Hey")
}

the second is android module with enabled testFixtures option and android.experimental.enableTestFixturesKotlinSupport=true

build.gradle

plugins {
    alias(libs.plugins.android.library)
    alias(libs.plugins.kotlin.android)
    id("com.autonomousapps.dependency-analysis") version "2.5.0"
}

android {
    namespace = "com.example.lib"
    compileSdk = 34
    testFixtures.enable = true

    defaultConfig {
        minSdk = 26
    }

    compileOptions {
        sourceCompatibility = JavaVersion.VERSION_17
        targetCompatibility = JavaVersion.VERSION_17
    }
    kotlinOptions {
        jvmTarget = "17"
    }
}

dependencies {
    implementation(project(":kt-lib"))
    testFixturesImplementation(project(":kt-lib"))
}

one class in src/main

import com.example.utils.SomeUtils

interface SomeClass {
    fun yo()

    class Impl : SomeClass {
        override fun yo() = SomeUtils.blabla()
    }
}

and stub implementation in src/testFixtures

import com.example.utils.SomeUtils

class StubSomeClass : SomeClass {

    override fun yo() {
        SomeUtils.blabla()
    }
}

When I run projectHealth task I get the following message

Unused dependencies which should be removed:
  testFixturesImplementation(project(":kt-lib"))

If you follow the advice and remove the dependency, code in src/testFixtures won't compile

@autonomousapps
Copy link
Owner

Thanks for the report.

@autonomousapps autonomousapps added bug Something isn't working toolchain:android labels Dec 2, 2024
@autonomousapps autonomousapps added this to the next milestone Dec 2, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working toolchain:android
Projects
None yet
Development

No branches or pull requests

2 participants