我已将eclipse项目导入android studio
不知怎的,它发现我的另一个eclipse项目包含导入项目的单元测试代码
它引入了代码并将其放在src / androidTest目录
中我真的不希望它这样做,但他们现在在那里并导致构建失败
有没有办法关闭androidTest的东西?所以我可以专注于应用程序是否真正构建?
也许是通过gradle设置? (这是我第一次接触gradle)
也许我只需要删除所有的androidTest java文件,但这似乎有点最终......
答案 0 :(得分:5)
在Android Studio中重建项目后,将重新编译项目中的所有源文件。一旦您的仪器测试无法编译,许多不同的任务开始包括导致构建中断的:compileDebugAndroidTestJavaWithJavac
。
在Android Studio中调用重建只是将这些任务传递给gradle的UI:
Gradle tasks [:app:generateDebugSources, :应用:generateDebugAndroidTestSources, :app:prepareDebugUnitTestDependencies,:app:mockableAndroidJar, :app:compileDebugSources,:app:compileDebugAndroidTestSources, :应用程序:compileDebugUnitTestSources]
即。没有明显的方法可以修改它。
<强>解决方法:强>
我希望,这有帮助。
答案 1 :(得分:4)
有人可能会觉得这很有用:如果您使用的是JUnit
@Ignore
命令,则可以使用测试方法来忽略整个测试方法。
示例:强>
@Ignore("This test will be ignored")
@Test
public void my_test_method() {
// test code here...
}
答案 2 :(得分:3)
将此代码放入应用程序的gradle脚本中:
tasks.whenTaskAdded { task ->
if (task.name.equals("lint")) {
//this is for speed up build
task.enabled = false
}
if(task.name.contains("Test"))
{
//this is what you need
task.enabled = false
}
}
当gradle添加任务时,此代码将检查任务名称。 如果这个任务是&#39; lint&#39; (check here),不需要每个构建。 如果这个任务有一个任务&#39;如果我们想要的话,我们可以跳过。
:app:preDebugAndroidTestBuild SKIPPED
:app:compileDebugAndroidTestAidl SKIPPED
:app:processDebugAndroidTestManifest SKIPPED
:app:compileDebugAndroidTestRenderscript SKIPPED
:app:generateDebugAndroidTestBuildConfig SKIPPED
:app:generateDebugAndroidTestResValues SKIPPED
:app:generateDebugAndroidTestResources SKIPPED
:app:mergeDebugAndroidTestResources SKIPPED
:app:splitsDiscoveryTaskDebugAndroidTest SKIPPED
:app:processDebugAndroidTestResources SKIPPED
:app:generateDebugAndroidTestSources SKIPPED
我不知道这些任务是什么。但是,当我跳过我的项目时,除了速度之外什么也没有影响(不多,因为我没有测试文件),这对gradle构建系统来说很痛苦。
我希望,这会帮助你。