当前位置: 首页 > 知识库问答 >
问题:

为什么是BuildConfig.通过Gradle执行本地单元测试时,DEBUG设置为false?

亢仰岳
2023-03-14

背景:

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

问题:

我注意到,当我在Android Studio中使用绿色的play按钮BuildConfig运行单元测试时。调试按预期为“true”。这可能是因为我将构建变量设置为debug。

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

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

共有1个答案

徐承载
2023-03-14

我假设您有两种风格,debugrelease。如果您运行/gradlew test,它将运行两个测试任务,即testDebugUnitTesttestReleaseUnitTest

有如下简单的测试用例。

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

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

 类似资料:
  • 这是我的整个测试课程: 有3个单元测试,它们在单独运行时都通过了,但当我运行整个测试类时,我的第2个和第3个测试失败,错误如下: 我已经想尽一切办法来解决这个问题: 我将测试实例化下的类移动到@Before函数中 我尝试创建@After函数并调用Mockito。重置我的模拟 我应该提到的是,我正在使用nhaarman。mockitokotlin2库和argumentCaptor。 关于为什么这些测

  • 我正在使用Angular2 final(2.0.2)和angular cli。我正在尝试将其设置为使用PhantomJS运行单元测试。使用Chrome和karma Chrome launcher运行规范-所有测试都通过。在Phantomjs预构建2.1中运行相同的功能。13和karma phantomjs launcher 1.0。2次测试失败。 我添加了phantomjs启动器到插件数组中kar

  • 不要与之前提出的问题混淆“为什么我的测试在一起运行时失败,但单独通过?” 我有一个任务,我需要修改JUnit测试类来处理多个数据库测试。在实现之前,我需要确保所有测试都在运行,没有失败。令我困惑的是,现在当我一起运行所有的类时,它显示它运行时没有失败。当我运行一个特定的类时,它突然失败了,如果我重复它,结果仍然存在。 这可能是什么原因造成的? 我自己没有写测试,因此我对测试内容的了解是有限的。不过

  • 从Spring 3.1开始,由于@Enable*注释,我们可以更容易地使用JavaConfig。 所以我做了一个WebConfig来设置WebMvc配置,并尝试对其进行测试。但是,如果我使用WebConfig扩展WebMVCConfigureAdapter或WebMvcConfigurationSupport,单元测试将失败,因为缺少ServletContext。代码和消息如下所示。 网络配置。J