在功能模块中放置仪器测试

问题描述

我有一个包含应用程序模块和功能/库模块的多模块架构。 目前,app 模块中有一些功能检测测试。我想将在 androidTest 文件夹下的各个功能模块中测试特定功能的仪器测试移动。经过一些试验和错误,这是状态:

  1. 在应用模块gradle的文件添加
        androidTest {

            java.srcDirs += [
                    "${project(':feature').projectDir}/src/androidTest/kotlin"
            ]
            assets.srcDirs = [
                    "${project(':feature').projectDir}/src/androidTest/assets/",]
        }
  1. 创建了一个“基础测试”模块,其中基础测试类是(BaseActivity 和 BaseUiTest)

  2. 在应用程序和功能 gradle 文件添加

    defaultConfig {
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
  1. 在应用模块的 androidTest AndroidManifest.xml 中
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.xxx">

    <application
        android:theme="@android:style/Theme.Light"
        android:name=".App"
        android:label="Test app">
    </application>

</manifest>

当我从android studio界面运行测试时,测试成功。但是,当从命令行 (./gradlew :feature:connectedAndroidTest) 运行测试时,由于应用程序在运行时崩溃(由于 koin 模块未初始化 - 它们位于 CustomApplication's onCreate),测试失败!

更奇怪的是,如果我将功能模块的 androidTest 文件夹移动到它自己的模块中(例如依赖于功能模块的功能测试模块),它就可以工作!

是否有任何标准化方法可以在多模块设置中的每个功能模块中放置仪器测试?为什么从 android studio 运行测试成功,但从命令行运行不成功?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)