具有API级别28的Android-ProviderTestCase2无法正常工作

Sqr*_*764 4 java android integration-testing android-contentprovider

不久前,我使用ProviderTestCase2创建了一些检测测试。现在,我想更新我的代码库,并尝试在当前环境中重新激活旧的测试。

1)当我更新为compileSdkVersion 28时,似乎不再有任何类ProviderTestCase2。清理和构建项目失败。如果我回到版本27,则可以成功构建该项目。

2)我有一种特殊情况,我想用一组测试来测试对象的不同变体。因此,我决定利用继承并将测试放在基类中,配置要由超类测试的对象。这过去曾经奏效。(是的,我知道关于测试中的继承是不好的观点,但是在这种情况下,它是可以的;-))

现在不执行任何测试。Android Studio抱怨说有一个空的测试套件。

也有警告,我在扩展JUnit3的类中使用JUnit4注释进行了测试。我不记得我曾经看过这些警告。

这是Android库中的错误吗?或在哪里可以找到解决此问题的提示?

(使用Android Studio 3.2和最新的库)

Web*_*cer 5

ProviderTestCase2 已删除。在ProviderTestRule应使用(从支撑测试库或AndroidX)。

看到:

添加com.android.support.test:rules依赖项,以便能够使用规则。

这是参考页中的示例:

@Rule
public ProviderTestRule mProviderRule =
    new ProviderTestRule.Builder(MyContentProvider.class, MyContentProvider.AUTHORITY).build();

@Test
public void verifyContentProviderContractWorks() {
    ContentResolver resolver = mProviderRule.getResolver();
    // perform some database (or other) operations
    Uri uri = resolver.insert(testUrl, testContentValues);
    // perform some assertions on the resulting URI
    assertNotNull(uri);
}
Run Code Online (Sandbox Code Playgroud)