【问题标题】:Why is BuildConfig.DEBUG set to false when executing local unit tests via Gradle?为什么通过 Gradle 执行本地单元测试时 BuildConfig.DEBUG 设置为 false?
【发布时间】:2019-12-26 01:04:15
【问题描述】:

上下文:

我的一个本地单元测试调用了我正在测试的方法,该方法的逻辑依赖于“BuildConfig.DEBUG”是真还是假。

问题:

我注意到,当我使用绿色播放按钮在 Android Studio inside 运行我的单元测试时,BuildConfig.DEBUG 按预期为“真”。这可能是因为我将构建变体设置为调试。

但是,当我使用“./gradle test”之类的命令通过终端运行相同的测试时,它被设置为 false。

这是预期的行为吗?为什么?

【问题讨论】:

  • 发布你的应用build.gradle文件
  • @flopshot 不幸的是我不能发布它,但我能想到的唯一可以与 build.gradle 相关的是我如何定义 main、androidTest 和调试的 sourceSets?

标签: android unit-testing android-studio gradle build.gradle


【解决方案1】:

我假设您有两种口味,debugrelease。 如果你运行./gradlew test,它将运行两个测试任务,分别是testDebugUnitTesttestReleaseUnitTest

有如下简单的测试用例。

@Test fun test() {
    assertTrue(BuildConfig.DEBUG)
}

它将在testDebugUnitTest 任务中成功,在testReleaseUnitTest 任务中失败。 test 任务也会失败。 因为test 任务依赖于testReleaseUnitTest

【讨论】:

    猜你喜欢
    • 2012-04-08
    • 2014-03-02
    • 1970-01-01
    • 2016-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-27
    • 2017-09-10
    相关资源
    最近更新 更多