Android上弃用了@SmallTest,@ MediumTest和@LargeTest

Víc*_*tos 31 android

这3和注释@SmallTest,@MediumTest以及@LargeTest最近被弃用Android上.

但我找不到任何解释动机或提出新注释集的文档.

那么,现在有什么方法可以宣布测试的范围吗?

Chr*_*acy 24

以前这些注释都在android.test.suitebuilder.annotation包中.从API 24开始,它们被移动到android.support.test.filters包中(此处记录@MediumTest.@SmallTest并且@LargeTest是相同的).

要使用新版本:

  1. 确保您在import android.support.test.filters.<size>Test测试文件的顶部使用.
  2. 确保您的测试runnerrules版本在build.gradle文件中至少使用0.5版: androidTestCompile 'com.android.support.test:runner:0.5' androidTestCompile 'com.android.support.test:rules:0.5'

  • 好吧我弄清楚了,因为`<size> Test`实际上是用于仪器测试.如果你在测试文件夹(而不是androidTest文件夹)中获得`<size> Test`,它只会在智能导入时显示`*`. (3认同)

gio*_*.nl 7

androidx 更新

应用程序中声明的依赖项build.gradle

androidTestImplementation 'androidx.test:runner:1.2.0'

然后导入看起来像:

import androidx.test.filters.SmallTest;
import androidx.test.filters.MediumTest;
import androidx.test.filters.LargeTest;
import androidx.test.filters.FlakyTest;
Run Code Online (Sandbox Code Playgroud)

原答案

就像 Chris 所说,它们从 API 24 开始在测试支持库中移动(针对此 API 的应用程序)

为了使用 JUnit/Unit 测试的注释,您必须添加:

testImplementation 'com.android.support.test:runner:0.5'
Run Code Online (Sandbox Code Playgroud)

在你的build.gradle文件中

对于 UI/仪器测试添加:

androidTestImplementation 'com.android.support.test:runner:0.5'
Run Code Online (Sandbox Code Playgroud)

然后在您的测试类中添加一个/多个以下导入:

import android.support.test.filters.SmallTest;
import android.support.test.filters.MediumTest;
import android.support.test.filters.LargeTest;
import android.support.test.filters.FlakyTest;
Run Code Online (Sandbox Code Playgroud)

  • 您是否在单元测试中使用此导入(src/test 下的类文件)?因为如果是这样,那么您需要使用`testCompile 'com.android.support.test:runner:0.5'` 如果您不确定,请给我您使用导入的类文件的完整路径。 (2认同)

gab*_*ero 5

androidx更新

第 1 步:在应用程序的 build.gradle 文件中,在依赖项内添加:

testImplementation 'androidx.test:runner:1.1.1'
testImplementation 'androidx.test:rules:1.1.1'
Run Code Online (Sandbox Code Playgroud)

第 2 步:在您的测试类中,添加所需的导入

import androidx.test.filters.LargeTest;
import androidx.test.filters.MediumTest;
import androidx.test.filters.SmallTest;
Run Code Online (Sandbox Code Playgroud)