我正在尝试为一个Android项目创建Robolectric测试(哎呀,我很高兴甚至让他们进行单元测试)
我的文件夹目录为:
MyApp
- app
- src
- main
- java
- com.myapp
HelloWorld
- test
- java
- com
- myapp
HelloWorldTest.java
问题是HelloWorldTest.java
无法运行,因为它未被识别为来源。我如何设置它,以便我可以运行这个类作为测试?????
如果我尝试CMD + SHIFT + T
(创建测试的快捷方式),它会提示在与我的源文件相同的目录下创建测试,我不希望这样做
答案 0 :(得分:31)
在Android Studio 1.0中,该方案发生了一些变化。
你的路径应该是(app)/src/androidTest/java/com/myapp/HelloWorldTest.java
以下是我在新Android Studio项目中设置单元测试的方法:
现在添加一个新配置进行测试:
现在你可以运行测试了。
答案 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测试。