5

很长一段时间以来,我一直在为 unit-test-android 问题苦苦挣扎。我已经看到了这个这个那个,最后我找到了gradle-android-test-plugin甚至让它工作。我现在可以使用gradlew test命令运行测试。

但是,在 IDE(Android Studio 或 IntelliJ 13)中编写这些测试远非舒适,因为它没有看到 junit 和 Robolectric 依赖项添加了testCompile依赖项。

有什么方法可以将这些依赖项添加到 IDE 类路径中,但仍然避免将它们打包到生产应用程序中(因此,compile不能使用 AFAIU 依赖项)?

4

4 回答 4

1

我今天在 IntelliJ 14.1.3 上遇到了同样的问题。解决方案是运行此处列出的步骤。基本上:

  1. testCompile 'junit:junit:4.+'通过, etz添加 JUnit 和其他依赖项
  2. 将测试源放入src/test/java/...
  3. 要让 IDE 找到测试依赖项(gradle 会很好地找到它们),请打开“Build Variants”视图并将“Test Artifact”设置为“Unit Test”。在“项目结构”中,测试依赖项应该以“测试”范围显示在您的模块中
  4. 运行测试的命令行是testXxx,其中Xxx是构建类型 (debug/release/etz)。

这里重要的一步是“构建变体”视图中的一步。将其更改为“单元测试”后,它将索引并且您的库和完全自动完成功能可用。

于 2015-06-08T15:50:23.153 回答
0

对于我的 Android 测试依赖项,我使用 instrumentTestCompile 而不是 testCompile。在 Android Studio 中运行我的测试时,这对我有用。希望这可以帮助。

于 2013-12-21T00:00:54.127 回答
0

您可以使用内置idea插件。那应该为您设置测试依赖项。您需要导入插件:

apply plugin: 'idea'

然后运行gradle idea​​, 生成模块文件 ( *.iml) 并重新加载您的项目。请注意,您必须使用非基于目录的想法配置才能工作。

于 2013-12-21T15:57:16.920 回答
0

在 IntelliJ IDEA 中,您需要在您的build.gradle

// add idea plugin
apply plugin: 'idea'
// make sure `configurations.testCompile` is added to idea.module
idea {
    module {
        scopes.TEST.plus += [ configurations.testCompile ]
    }
}

有关更多信息,请参阅: http ://www.gradle.org/docs/current/dsl/org.gradle.plugins.ide.idea.model.IdeaModule.html

包含的任何依赖项testCompile都将自动导入 IDEA。

于 2017-11-17T11:44:20.600 回答