8

我能找到的所有使用 Robolectric 的例子似乎都是基于 Maven 的。有人不使用Maven吗?如果是这样,我真的很想了解您的 IntelliJ 项目设置。

读过这篇文章

安卓单元测试方法

结合纯 junit、robolectric 和 android 测试框架测试,对单元测试 android 项目采用分层方法似乎是明智的。如果有人在有或没有 Maven 的情况下这样做,我很想了解一点关于您如何在 IntelliJ 中配置项目的信息。

我猜我需要多个项目/模块。对此表示感谢的任何智慧。

4

3 回答 3

6

Maven 是一个让事情变得更方便的好工具。如果您仍在寻找在没有 Maven 的情况下在 intellij 中安装 Robolectric 的方法,请继续:

  1. 下载 Robolectric: https ://oss.sonatype.org/index.html#nexus-search;quick~robolectric 下载最新的 jar-with-dependencies.jar 文件。下载它并将它放在你的应用程序项目的 libs/ 目录中

  2. 使用以下文件结构设置您的应用程序源(这是为 Robolectric 测试设置目录的一种广泛使用的方法)

    ProjectName/  
        src/  
             main/  
                 java/  
                      com/  
                          example/  
                                  packageName/  
                                             javaClassesHere.java
             test/
                 java/
                      com/
                          example/
                                  packageName/
                                             javaTestClassesHere.java
    
  3. 在 Intellij 中,转到文件 > 项目结构。然后在左栏中,选择“模块”。
    在中间列中,选择您的应用模块。
    然后在右栏中,单击“来源”选项卡。
    现在在文件浏览器中,找到“src”目录并展开它。然后在 src 中展开你的“main”和“test”目录。单击“main”下的“java”目录,然后向顶部单击蓝色的“Sources”按钮。然后对于“test”下的“java”目录,朝顶部单击“Test Sources”按钮。
    此外,单击主“src”目录并取消选择蓝色源按钮以使其不再是蓝色。

  4. 现在仍在项目结构窗口中,转到左侧列并单击“库”。
    如果您已经在中间列中看到了 robolectric 条目,请单击它,然后单击中间列顶部的红色“-”符号。
    现在单击中间列上方的绿色“+”号,然后选择“Java”。浏览到您在步骤 1 中下载的 robolectric jar。(应该在项目的 libs/ 目录中。
    现在会出现一个窗口,询问您要在哪些模块上使用 robolectric。选择将要使用的所有模块robolectric 并单击 ok. 现在单击 apply 和 ok 以退出项目结构。

您现在已准备好使用 robolectric 进行测试!

于 2013-06-13T14:19:41.550 回答
3

我猜大多数使用 Roboelectric 的人使用 Maven 的原因是大多数使用 Roboelectric 的人都认真对待他们的测试。

鉴于他们有动力投入大量精力进行测试,他们很可能希望能够将他们的测试包含在自动化构建中,通常是在持续集成 (CI) 服务器中,例如 Jenkins 或 Hudson。

当你想做自动化测试时,你需要一个好的命令行构建。Gradle 是全新的 Android 官方命令行构建工具,但它是全新的,仍在开发中,尚未被广泛采用。久经考验的工具是 Maven。

很多人都喜欢讨厌 Maven,但它完成了工作,并以一英里的优势击败了 Ant。

因此,使用 Maven(或 Gradle)可能不是一个坏主意——与仅在 IDE 中运行测试相比,它会给您带来更多的测试成本。

于 2013-06-03T23:37:46.927 回答
2

我是 Robolectric 天空中的一只早起的鸟,从不走 Maven 的方式开始。我的主要动机是尝试该框架,因此从未考虑过使用 Maven。我在以下网址记录了我的学习成果: http:
//dasherize.blogspot.in/2013/04/robolectric-beginning.html ,您可以 在此处
找到设置说明。

注意:这是关于 Robolectric 1.x 的。但它不应该随着版本的变化而变化很大。

至于这个答案,我完全同意@GreyBeardedGeek。如果你想设置 CI,你必须使用 Maven。

于 2013-07-04T15:04:35.653 回答