如何让Android Studio将文件识别为源(测试)

时间:2014-02-21 06:57:40

标签: android junit intellij-idea gradle android-studio

我正在尝试为一个Android项目创建Robolectric测试(哎呀,我很高兴甚至让他们进行单元测试)

我的文件夹目录为:

MyApp
    - app
        - src
            - main
                - java
                    - com.myapp
                        HelloWorld
            - test
                - java
                    - com
                        - myapp
                            HelloWorldTest.java

问题是HelloWorldTest.java无法运行,因为它未被识别为来源。我如何设置它,以便我可以运行这个类作为测试?????

如果我尝试CMD + SHIFT + T(创建测试的快捷方式),它会提示在与我的源文件相同的目录下创建测试,我不希望这样做

4 个答案:

答案 0 :(得分:31)

在Android Studio 1.0中,该方案发生了一些变化。

你的路径应该是(app)/src/androidTest/java/com/myapp/HelloWorldTest.java

以下是我在新Android Studio项目中设置单元测试的方法:

  • 在Android Studio中打开应用。
  • 设置项目浏览器(左侧窗口)以显示'项目'模式。点按左上角的小下拉菜单,然后选择'项目'。
  • 右键点击' src'目录,'新 - >目录'
  • 调用新目录androidTest
  • 右键单击androidTest并添加一个' java'目录。它将显示为绿色(表示它是测试src目录)。
  • 现在再次右键单击并添加一个包,例如com.mycompany.myapp.tests
  • 添加一个扩展AndroidTestCase的新类。

现在添加一个新配置进行测试:

  • 编辑配置
  • 点击左上角的
  • 选择Android测试
  • 在“常规”选项卡中,选择主模块。
  • 点击确定

现在你可以运行测试了。

答案 1 :(得分:30)

在Android Studio 1.3中:

构建>选择构建变体

在Build Variants窗口中,选择 Unit Tests 作为Test Artifact。

答案 2 :(得分:10)

遵循此处提供的指南:

http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Testing

在这里

http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Configuring-the-Structure

摘要:

正如第一个链接所示,您必须将test目录重命名为instrumentTest,以便Studio可以自动检测测试项目的sourceSets

备用您可以将您的tests目录放在root(与您的主目录一起)和源tests/java之类,因为第二个链接显示

instrumenttest.setRoot("tests")

在android标记

下的sourceSets配置中

来自文件

  

注意:setRoot()将整个sourceSet(及其子文件夹)移动到a   新建文件夹。这会将src / instrumentTest / *移动到tests / *这是Android   具体而且不适用于Java sourceSets。

答案 3 :(得分:0)

我有很长一段时间的类似问题,最后我解决了这个问题。

要让Android Studio识别src / test目录为源,您必须选择单元测试'在'构建变体' - >'测试工件:'

然而,在我的项目中,我还没有进行过单元测试'我只进行了Android Instrumentation测试'。这是Android中两种不同类型的单元测试。

请参阅:http://developer.android.com/training/testing/unit-testing/index.html
1。单元测试 - 本地单元测试
2。 Android Instrumentation测试 - 仪表单元测试

这一点并不明显,但内部'构建变体' - >'测试神器:'你没有单元测试'在项目中有多个模块时选项。

我的项目目录看起来像这样:
:项目
- :模块1
- :模块2
- :单词数
- :单词数
- :单词数
-settings.gradle - >包括':module1',':module2',... 这些模块并没有真正相互联系,但它是来自Eclipse的许多其他开发人员的必备方式。那是一个问题。

然后我只为我的模块创建了单独的项目:
:项目
- :模块1
-settings.gradle - >包括':module1'

之后'单元测试'出现在' Build Variants' - >' Test Artifact:'我现在可以选择本地单元测试和Android Instrumentation测试。