如何将testCompile依赖项添加到IDE类路径

时间:2013-12-20 22:36:04

标签: android junit gradle gradle-android-test-plugi

我一直在努力解决unit-test-android问题很长一段时间。我看到了thisthisthat,最后我找到了gradle-android-test-plugin,甚至让它发挥作用。我现在可以使用gradlew test命令运行测试。

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

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

4 个答案:

答案 0 :(得分:1)

我今天对IntelliJ 14.1.3也有同样的问题。解决方案是运行概述here的步骤。基本上是:

  1. 通过testCompile 'junit:junit:4.+',etz
  2. 添加JUnit和其他依赖项
  3. 将测试来源放入src/test/java/...
  4. 要让IDE找到测试依赖项(gradle会发现它们很好),打开"构建变体" -view并设置"测试工件&#34 ;到"单元测试"。在"项目结构"中,测试依赖项应显示在您的模块中,使用"测试" -scope
  5. 运行测试的命令行是testXxx,其中Xxx是构建类型(debug / release / etz)。
  6. 这里的重要一步是构建变体"视图。将其更改为"单元测试"后,它将编制索引,并且您的库和完全自动完成功能可用。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

apply plugin: 'idea'

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

答案 3 :(得分: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。