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

bph*_*bph 7 eclipse android unit-testing android-studio

我已经将一个eclipse项目导入android studio

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

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

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

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

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

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

bur*_*kur 7

将此代码放入您的应用程序的 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
    }
}
Run Code Online (Sandbox Code Playgroud)

当 gradle 添加一个任务时,这段代码会检查任务名称。如果此任务是“lint”(检查此处),则不需要每次构建。如果此任务有“任务”字样,我们可以跳过。

: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
Run Code Online (Sandbox Code Playgroud)

我不知道这些任务是什么。但是,当我跳过我的项目时,除了速度(没有太大影响,因为我没有测试文件)之外没有任何影响,这对 gradle 构建系统来说是一个痛苦。

我希望,这会帮助你。


Sak*_*boy 6

有人可能会发现这很有用:如果您正在使用JUnit有一个@Ignore命令,您可以放置​​一个测试方法来忽略整个测试方法。

例子:

@Ignore("This test will be ignored")
@Test
public void my_test_method() {
    // test code here...
}
Run Code Online (Sandbox Code Playgroud)


Kon*_*nov 5

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

在此输入图像描述

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

Gradle任务[:app:generateDebugSources,:app:generateDebugAndroidTestSources,:app:prepareDebugUnitTestDependencies,:app:mockableAndroidJar,:app:compileDebugSources,:app:compileDebugAndroidTestSources,:app:compileDebugUnitTestSources]

也就是说,如何修改它没有明显的方法.

解决方法:

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

我希望,这有帮助.