如何禁用android studio单元测试(androidTest)

时间:2016-01-27 16:27:31

标签: android eclipse unit-testing android-studio

我已将eclipse项目导入android studio

不知怎的,它发现我的另一个eclipse项目包含导入项目的单元测试代码

它引入了代码并将其放在src / androidTest目录

我真的不希望它这样做,但他们现在在那里并导致构建失败

有没有办法关闭androidTest的东西?所以我可以专注于应用程序是否真正构建?

也许是通过gradle设置? (这是我第一次接触gradle)

也许我只需要删除所有的androidTest java文件,但这似乎有点最终......

3 个答案:

答案 0 :(得分:5)

在Android Studio中重建项目后,将重新编译项目中的所有源文件。一旦您的仪器测试无法编译,许多不同的任务开始包括导致构建中断的:compileDebugAndroidTestJavaWithJavac

enter image description here

在Android Studio中调用重建只是将这些任务传递给gradle的UI:

  

Gradle tasks [:app:generateDebugSources,   :应用:generateDebugAndroidTestSources,   :app:prepareDebugUnitTestDependencies,:app:mockableAndroidJar,   :app:compileDebugSources,:app:compileDebugAndroidTestSources,   :应用程序:compileDebugUnitTestSources]

即。没有明显的方法可以修改它。

<强>解决方法:

  • androidTest
  • 中注释掉已损坏的文件
  • 删除/重命名 androidTest 目录
  • 使用 Android plugin for Gradle 构建项目并传递除与InstrumentalTests相关的命令之外的所有命令
  • 避免制作/重建解决方案,只需添加(如果它还不存在)Android应用程序配置并构建应用程序本身,无需工具测试

我希望,这有帮助。

答案 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构建系统来说很痛苦。

我希望,这会帮助你。