如何在Android Studio中运行JUnit测试?

7
我认为在instrumentTest中的测试应该与android相关,所以是否需要添加一个额外的源文件夹例如src/test/java? 似乎在src/test/java中的测试文件没有被编译。
如何独立运行junit测试?
如何仅在命令行中而不是关于android的instrumentTest中运行junit测试?
或者将junit测试放入instrumentTest文件夹中并调用。
请参考以下图片:
第一张图片: https://istack.dev59.com/Y5YOf.webp
第二张图片: https://istack.dev59.com/Taprv.webp
     ./gradlew connectedInstrumentTest

但是,单元测试根本无法运行。

到目前为止,我已经使用这个答案解决了问题。 - log1000
在Genymotion模拟器上运行单元测试几乎与直接运行单元测试一样快。但是,我无法直接将文件(日志)写入我的PC,该文件将位于模拟器内部。 - Hiep
3个回答

2

如果你的build.gradle文件中只有Android插件,那么我认为这是不可能的。Android插件仅支持InstrumentTest文件夹中的测试。普通的test文件夹仅供其他插件使用。

此外,Android Studio本身可能需要支持。但是我不确定。


0
首先,您应该建立适当的文件夹结构以匹配 Gradle 期望的默认结构。在您的 gradle.build 文件中的 android{} 部分中,您应该添加:
 sourceSets {
    instrumentTest.setRoot('src/instrumentTest')
}

接下来,您应该在src/文件夹中创建适当的文件夹结构。现在,您应该有main/java/your/package/name/YourActivity.java。为了让Gradle找到您的测试,您应该在src/文件夹中创建与主要结构相同的结构,例如:instrumentTest/java/your/package/name/YourActivityTest.java

接下来,为了让Gradle编译您的依赖项,您应该在您的gradle.build中添加:

dependencies {
   instrumentTestCompile 'com.jayway.android.robotium:robotium-solo:4.2'
   instrumentTestCompile 'junit:junit:4.10'
}

请记住,这些是在您的buildscript{}部分之外的依赖项。在应用这些更改后,您应该能够运行您的JUnit测试以及Robotium测试。不要忘记多次点击“make”按钮,让Gradle跟上步伐。


0

在项目视图中右键单击测试文件。选择运行...

不要忘记,测试和被测试类的目录结构必须匹配。你的看起来有点可疑。这里是如何轻松做到的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接