【问题标题】:How do I create an Android Test Module in IntelliJ 13 for a Gradle Android project?如何在 IntelliJ 13 中为 Gradle Android 项目创建 Android 测试模块?
【发布时间】:2014-07-18 18:48:38
【问题描述】:

我已经在 IntelliJ 13 中成功创建了一个 Android 项目,我想设置 Android 测试框架。我使用新项目向导使用 Gradle 创建了 android 项目。当我去添加一个新模块时,我只有“Gradle:Android 模块”和“Gradle:Java 库”的选项,“测试模块”选项丢失了。

如何生成 Android 测试模块?我已经阅读了http://www.jetbrains.com/idea/webhelp/testing-android-applications.html,但我永远找不到任何“测试”选项。

如果无法自动生成 Android 测试模块,那么如何配置和使用带有 Gradle Android 项目的 Android 测试框架?非常感谢示例或文档的链接。

详细信息: IntelliJ 13.1.3

【问题讨论】:

    标签: java android intellij-idea gradle android-testing


    【解决方案1】:

    所以目前你的目录结构应该是这样的:

    ProjectDirectory/
      res/
      src/
        main/
          java/
            your.package.name
              MyClass.java
    

    你需要做的就是为androidTest添加一个src目录:

    ProjectDirectory/
      res/
      src/
        main/
          java/
            your.package.name
              MyClass.java
        androidTest/
          java/
            your.package.name
              MyClassTest.java
    

    然后将您的 Gradle 文件与您的项目重新同步,它应该被检测为测试目录。然后您可以运行connectedCheckconnectedAndroidTest 任务(我不清楚两者的区别)来运行测试。

    如果您的目录结构与上述不同(例如,如果您很重要一个 Eclipse 风格的项目),您可以在 build.gradle 脚本中指定备用 src 目录:

    android {
        sourceSets {
            androidTest {
                java.srcDirs = ['path/to/test/src']
            }
        }
    }
    

    【讨论】:

    • 看到这行得通我有点惊讶,因为 Ant 设置要复杂得多,并且涉及多个模块。我还要补充一点,在 IntelliJ 中运行测试非常简单,只需右键单击测试并为 android 选择“运行”即可。
    • 您知道的任何地方都记录了这一点吗?
    • 是的,您可以在这里找到更多信息:tools.android.com/tech-docs/new-build-system/…
    • 谢谢,所有其他在线教程,即使是官方的也已经过时了。
    【解决方案2】:

    作为替代方案,您可以尝试切换到 Android Studio,它建立在 ItelliJ 之上。如果您正在创建一个新项目,Android Studio 会自动为您创建测试目录。

    【讨论】:

      【解决方案3】:

      经过多次尝试,我找到了绝对好的方法:

      1. 在您的包下创建一个测试文件夹。
      2. 创建一个类(将其称为ExampleTest 会很好)将InstrumentationTestCase 扩展至此文件夹。
      3. 让我们添加一个我们知道会失败的简单测试:

        public class ExampleTest extends InstrumentationTestCase {
            public void test() throws Exception {
                final int expected = 1;
                final int reality = 5;
                assertEquals(expected, reality);
            }
        }
        

      请记住,所有测试方法都必须以“test-”前缀开头,否则 Android Studio 不会将它们检测为测试,并且您会遇到各种奇怪的错误,并且什么都不起作用。

      现在我们有一个注定要失败的测试用例,我们现在必须运行它。 首先单击“运行-> 编辑配置”。 现在从左上角选择“+ -> Android Tests”,然后选择“Android Tests”并将新的测试配置命名为“test”或其他相关的名称。

      选择您当前的模块,然后选择“All in Package”选项并导航到您刚刚创建的“test”文件夹。您也可以选择“All in Module”,Android Studio 会自动在您的整个 Module 中查找任何测试!您还可以更具体地选择“类”甚至“方法”选项来进一步缩小测试范围。

      应用、关闭并运行此配置!测试将运行..!

      通过此链接获取信息: http://rexstjohn.com/unit-testing-with-android-studio/ 它是为 android studio 编写的,但它也适用于 intelliJ 13! ;) 玩得开心!

      【讨论】:

        【解决方案4】:

        我在 Intellij 中创建 android 项目时遇到了麻烦,所以现在我在 Eclipse 中创建项目,然后将它们导入 Intellij。这很烦人,但它很容易解决,而且很有效。

        【讨论】:

        • 您是否尝试过使用 Gradle 构建?还是只有 Ant 构建?
        • 对不起,我的回复有点晚了。到目前为止,我只用 ant 尝试过,但似乎 eclipse 是 Android Dev 最受支持的 IDE,我认为它也可以与 gradle 一起使用。
        • 这个问题专门针对 Gradle 构建,因为 Ant 和 Gradle 项目的设置非常不同。据我了解,Android 正在从 Ant 和 Eclipse 转向 Gradle 和 Android Studio(建立在 IntelliJ 之上)。 IntelliJ 可以毫无问题地设置 Ant 项目。
        猜你喜欢
        • 2014-02-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-07-02
        • 2020-09-06
        相关资源
        最近更新 更多