gpt4 book ai didi

android - `testImplementation` 似乎没有正确解决测试的依赖关系

转载 作者:行者123 更新时间:2023-12-04 23:45:21 28 4
gpt4 key购买 nike

我正在 Android Studio 中进行一些单元测试(未检测)。我的所有测试依赖项都已在我的“build.gradle”中声明,如下所示:

testImplementation 'junit:junit:4.12'
testImplementation "org.mockito:mockito-core:$mockitoVersion"
testImplementation "org.powermock:powermock-module-junit4:$powerMockVersion"
testImplementation "org.powermock:powermock-api-mockito2:$powerMockVersion"
testImplementation 'org.json:json:20140107'
testImplementation 'org.robolectric:robolectric:3.4.2'
但是,当我加载测试文件时,所有依赖项都标记为“无法解析符号 XXX”。如果我从 testImplementation 更改它至 androidTestImplementation ,所有依赖项都被正确检测到。 然而,这些不是仪器测试 ,但是独立的单元测试,所以当我使用 androidTestImplementation 执行测试时它返回一个 error: package org.junit does not exist ,阻止我运行单元测试。
到目前为止我检查过的东西(来自许多stackoverflow答案):
  • 确保我的测试在 test 中文件夹,而不是 androidTest
  • 删除 .idea.gradle文件夹
  • 移除依赖,同步 gradle,重新声明依赖,重新同步。
  • 使缓存无效并重新启动(多次)。
  • 尝试使用 Android Studio 4.0(当前为 3.6)
  • 从头开始重新导入项目。

  • 同样重要的是要注意(或者可能不是)该项目是一个库而不是一个应用程序。
    作为一种解决方法,我已将依赖项声明为 implementation所以我可以继续在本地运行测试,但这当然是麻烦和危险的,因为我不想最终错误地发送带有测试依赖项的 AAR。

    最佳答案

    一个迟到的答案,但也许它会帮助遇到这个问题并在同一问题上挣扎的人。
    对我有用的是将 build.gradle 中的 sourceSets(在 android 括号中)设置为正确的目录,起初我有一个不同的配置,但下面的配置对我有用,让我将 JUnit 导入我的测试类

    sourceSets {
    test.java.srcDirs += 'src/test/java'
    }

    关于android - `testImplementation` 似乎没有正确解决测试的依赖关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62910474/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com