lightbulb_outline Help shape the future of the Google Play Console, Android Studio, and Firebase. Start survey

旧版测试库

Android P 将基于 JUnit 的类重新整理成三个内容库: android.test.baseandroid.test.runner;以及 android.test.mock。 如需了解有关各内容库具体包含哪些类,请参阅类重新整理详情部分。

本指南介绍的是需要您对应用做出以便测试仍能正常构建和运行的变更。

注:如果在为 Android 应用创建和运行测试时需要其他框架支持,我们建议使用 Android 测试支持库

Gradle 构建文件变更

要继续构建依赖之前框架软件包的测试,请在应用的 build.gradle 文件中添加下列行:

app/build.gradle

android {
    ...

    // Required if using classes in android.test.runner
    useLibrary 'android.test.runner'

    // Required if using classes in android.test.base
    useLibrary 'android.test.base'

    // Required if using classes in android.test.mock
    useLibrary 'android.test.mock'
}

注:如果您使用 Gradle 构建应用的测试,可以获得额外支持。 Gradle 会自动添加 android.test.runner 内容库作为依赖项。

清单文件变更

要运行依赖之前框架测试类的测试,请将必要的 <uses-library> 元素添加到测试应用的 manifest。

注意:如果您不指定应用使用的元素,运行时会出现 ClassNotFoundException

注:如果您使用 Gradle 构建 instrumentation 测试,可以获得额外支持。 自动生成测试 manifest 时,Gradle 会自动向您的 manifest 文件添加 <uses-library> 元素。

如果您添加的测试依赖 android.test.runner 内容库,请向您的应用 manifest 添加以下元素:

<!-- You don't need to include android:required="false" if your app's
     minSdkVersion is 'P'. -->
<uses-library android:name="android.test.runner"
              android:required="false" />

只以 Android P 为目标平台时的注意事项

此部分的指导仅适用于以下情况:您以 Android P 为目标平台,并且应用的最低 SDK 版本设置为 Android P。

android.test.runner 隐式地依赖 android.test.baseandroid.test.mock 内容库。 如果您的应用仅使用 android.test.baseandroid.test.mock 中的类,则可单独加入这些内容库:

<!-- For both of these declarations, you don't need to include
     android:required="false" if your app's minSdkVersion is 'P'. -->
<uses-library android:name="android.test.base"
              android:required="false" />
<uses-library android:name="android.test.mock"
              android:required="false" />

类重新整理详情

以下列表显示了各内容库中包含的类。

android.test.base

此内容库包括下列非弃用类,其中的每个类都在 junit.framework 软件包中:

该内容库还包括下列已弃用类:

android.test 软件包 : * AndroidTestCase * FlakyTest * InstrumentationTestCase * InstrumentationTestSuite * PerformanceTestCase * UiThreadTest

android.test.suitebuilder.annotation 软件包: * LargeTest * MediumTest * SmallTest * Smoke * Suppress

com.android.internal.util 软件包: * Predicate

android.test.runner

此内容库包括下列非弃用类:

android.test 软件包: * LoaderTestCase * ProviderTestCase2

junit.runner 软件包: * BaseTestRunner * TestSuiteLoader * Version

该内容库还包括下列已弃用类:

android.test 软件包: * ActivityInstrumentationTestCase * ActivityInstrumentationTestCase2 * ActivityTestCase * ActivityUnitTestCase * AndroidTestRunner * ApplicationTestCase * AssertionFailedError * ComparisonFailure * InstrumentationTestRunner * IsolatedContext * MoreAsserts * ProviderTestCase * RenamingDelegatingContext * ServiceTestCase * SingleLaunchActivityTestCase * SyncBaseInstrumentation * TestSuiteProvider * TouchUtils * ViewAsserts

android.test.suitebuilder 软件包: * TestMethod * TestSuiteBuilder

android.test.mock

此内容库包括下列非弃用类,其中的每个类都在 android.test.mock 软件包中:

该内容库还包括下列已弃用类,其中的每个类同样都在 android.test.mock 软件包中: