我正在我的项目中编写一些测试用例,我最近几天遇到了android studio&gradle的android单元测试问题,搜索后无法得到好的答案.
以下是我遇到的情况,他们真的很困扰我.
情况1:
当我将测试用例放在androidTest文件夹中并运行时graldew cAT,也使用@AndroidJUnit4测试类的注释.我可以运行单元测试并获得正确的结果.但经过我只是改变了@AndroidJUnit4到@MockitoJUnitRunner(我需要嘲笑的上下文中).android studio或gradle找不到任何测试,只能告诉"空套".
情况2:
当我将测试用例放在测试文件夹中并运行时graldew test也使用注释@MockitoJUnitRunner.它可以成功找到测试.但我猜它只在本地运行.如果测试用例依赖于某些本机lib,它将给出如下的失败消息:java.lang.UnsatisfiedLinkError: no libxx in java.library.path
所以这里是问题:
问题1:
看来我们可以将测试代码放在src/test或src/androidTest中.那么这两个文件夹之间有什么区别?
问题2:
gradlew cAT和之间有什么区别gradle test?这两个命令是否与项目中的文件夹(我提到的test/androidTest文件夹)相关?
问题3:
在我的情况下,我需要编写一些测试用例,它依赖于Context和native.我该怎么办?
我用android studio创建了一个应用程序,但每次我尝试使用命令gradle build来构建应用程序时,都会说"lint failed".当我检查gradle构建的调试信息时,它说:
21:10:26.215 [DEBUG] [org.gradle.execution.taskgraph.AbstractTaskPlanExecutor] Task worker [Thread[Daemon,5,main]] finished, busy: 1.263 secs, idle: 0.034 secs
21:10:26.219 [ERROR] [org.gradle.BuildExceptionReporter]
21:10:26.221 [ERROR] [org.gradle.BuildExceptionReporter] FAILURE: Build failed with an exception.
21:10:26.222 [ERROR] [org.gradle.BuildExceptionReporter]
21:10:26.222 [ERROR] [org.gradle.BuildExceptionReporter] * What went wrong:
21:10:26.223 [ERROR] [org.gradle.BuildExceptionReporter] Execution failed for task ':MyApp:lint'.
21:10:26.224 [ERROR] [org.gradle.BuildExceptionReporter] > class org.objectweb.asm.tree.ClassNode has interface org.objectweb.asm.ClassVisitor as super class
21:10:26.225 [ERROR] [org.gradle.BuildExceptionReporter]
21:10:26.226 [ERROR] [org.gradle.BuildExceptionReporter] * Exception is:
21:10:26.228 [ERROR] [org.gradle.BuildExceptionReporter] org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':MyApp:lint'.
21:10:26.229 …Run Code Online (Sandbox Code Playgroud)