使用Jupiter(Junit5)进行仪器测试

Ali*_*ran 6 android kotlin android-studio junit5 junit-jupiter

我想在仪器测试中使用 Junit5。
当我将此行添加到 Build.gradle 时

androidTestImplementation "org.junit.jupiter:junit-jupiter:$junit_jupiter"
Run Code Online (Sandbox Code Playgroud)

我的测试显示以下错误

FAILURE: Build failed with an exception.
What went wrong:
Execution failed for task ':android_test:mergeDebugAndroidTestJavaResource'.
> A failure occurred while executing 
com.android.build.gradle.internal.tasks.MergeJavaResWorkAction
> 6 files found with path 'META-INF/LICENSE.md' from inputs:
  - C:\Users\Ali\.gradle\caches\modules-2\files-2.1\org.junit.jupiter\junit-jupiter- 
params\5.8.2\ddeafe92fc263f895bfb73ffeca7fd56e23c2cce\junit-jupiter-params-5.8.2.jar
  - C:\Users\Ali\.gradle\caches\modules-2\files-2.1\org.junit.jupiter\junit-jupiter- 
engine\5.8.2\c598b4328d2f397194d11df3b1648d68d7d990e3\junit-jupiter-engine-5.8.2.jar
  - C:\Users\Ali\.gradle\caches\modules-2\files-2.1\org.junit.jupiter\junit-jupiter- 
api\5.8.2\4c21029217adf07e4c0d0c5e192b6bf610c94bdc\junit-jupiter-api-5.8.2.jar
  - C:\Users\Ali\.gradle\caches\modules-2\files-2.1\org.junit.platform\junit-platform- 
engine\1.8.2\b737de09f19864bd136805c84df7999a142fec29\junit-platform-engine-1.8.2.jar
  - C:\Users\Ali\.gradle\caches\modules-2\files-2.1\org.junit.platform\junit-platform- 
commons\1.8.2\32c8b8617c1342376fd5af2053da6410d8866861\junit-platform-commons-1.8.2.jar
  - C:\Users\Ali\.gradle\caches\modules-2\files-2.1\org.junit.jupiter\junit- 
jupiter\5.8.2\5a817b1e63f1217e5c586090c45e681281f097ad\junit-jupiter-5.8.2.jar
 Adding a packagingOptions block may help, please refer to
 https://developer.android.com/reference/tools/gradle- 
api/7.2/com/android/build/api/dsl/ResourcesPackagingOptions
Run Code Online (Sandbox Code Playgroud)

我搜索并找到了 mannodermaus.de 发布的新依赖项女巫,
它位于依赖项下方

  androidTestImplementation("de.mannodermaus.junit5:android-test-core:1.3.0")
  androidTestRuntimeOnly("de.mannodermaus.junit5:android-test-runner:1.3.0")
Run Code Online (Sandbox Code Playgroud)

但我更喜欢使用官方依赖项。

问题:您知道在仪器测试(androidTest 文件夹)中使用 junit5(jupiter) 吗?

dea*_*ish 8

您可以exclude通过编辑 gradle 文件来忽略提到的文件:

android {
    compileSdkVersion("android-31")

    defaultConfig {
        minSdk = 26
        targetSdk = 32
        //...
    }

    lintOptions {
        // ....
    }

    packagingOptions {
        exclude("META-INF/LICENSE.md")
        exclude("META-INF/LICENSE-notice.md")
    }
    
    compileOptions {
        sourceCompatibility = JavaVersion.VERSION_1_8
        targetCompatibility = JavaVersion.VERSION_1_8
    }
}
Run Code Online (Sandbox Code Playgroud)

或者您可以在此处找到解决方案示例。