Robolectric packageinfo 缺失数据

Robolectric packageinfo missing data

我的应用使用 PackageInfo 中的 versionName 来确定当前版本。

我正在尝试测试依赖于该数据的一段代码(使用 JUnit),但是 Robolectric 将 versionName 设置为空。 我查看了源代码,发现 PackageInfo 是根据我的 AndroidManifest.xml.

初始化的

我的应用程序的清单不包含版本名称,它是通过 android gradle 插件设置的(在常规构建后效果很好,我想保持这种状态)

android {
    compileSdkVersion 19
    buildToolsVersion "19.1.0"

    defaultConfig {
        ...
        versionName VERSION_NAME
    }
...
}

关于如何在测试版本中对清单进行更改的任何想法?

您可以使用 BuildConfig.VERSION_NAME 常量,而不是从 PackageInfo 收集常量。

然而,由于 Robolectric 测试 运行 仅用于调试配置,因此无法签入 Robolectric 测试发布配置案例。但也许不是你的情况