Android Studio:共享文件夹不再工作

Fil*_*nik 5 android android-testing

我的 gradle 文件中有一个共享测试文件夹,配置如下:

        androidTest {
            java.srcDirs += "src/sharedTest/java"
        }
        test {
            java.srcDirs += "src/sharedTest/java"
        }
Run Code Online (Sandbox Code Playgroud)

但是,在启动时我从 Android Studio 收到此错误:

Duplicate content roots detected
            Path [/Users/fil/Documents/projects/deploy/app/build/generated/source/r/debug] of module [deploy.app.unitTest] was removed from modules 
Run Code Online (Sandbox Code Playgroud)

关于如何解决这个问题有什么想法吗?我发现我可能会使用测试装置,但我还没有找到可以遵循的实用指南:(

Fil*_*nik 0

更新:我能够使用建议和我在这里找到的示例项目使其工作:Shared srcDirs between test and androidTest, unresolved引用后升级到Android Studio Chipmunk (IntelliJ 2021.2.1)

最困难的部分是:

  • 正确匹配产品口味。否则一切都无法正常工作

  • 我仍在从共享文件夹导入共享测试,以便使用单元测试套件启动它们(它们是 robolectric 测试,因此我还想在需要时以可视方式启动它们)。像这样:

    test {
        java.srcDirs += "../shared/src/test/java"
    }
    
    Run Code Online (Sandbox Code Playgroud)
  • 将正确的 testInstrumentationRunner 也放入共享 gradle 中,因为它是自定义的

  • 导入主包中的所有共享代码,即使它在测试中使用(除了测试文件夹中的实际测试之外)

我仅将 gradle 插件更新到 7.2.2,并且没有将 Android Studio 更新到 beta 版本以使其正常工作。