无法解析符号 InstantTaskExecutorRule
Cannot resolve symbol InstantTaskExecutorRule
我打开示例代码BasicRxJavaSample(来自这篇文章Room+RxJava)
主要的是:
@Rule
public InstantTaskExecutorRule instantTaskExecutorRule =
new InstantTaskExecutorRule();
BasicRxJavaSample 就可以了。
但我不能在我的测试中应用它。
事情是这样的:
无法解析符号 InstantTaskExecutorRule
并且手动导入不起作用:
我的自动补全功能是这样的
但应该是这样
我的应用程序 build.gradle (full gradle here):
// tests
testImplementation 'junit:junit:4.12'
androidTestCompile "com.android.support:support-annotations:$supportVersion"
testImplementation "android.arch.core:core-testing:$archVersion"
// Test helpers for Room
testImplementation "android.arch.persistence.room:testing:1.0.0"
// https://github.com/mockito/mockito
testImplementation 'org.mockito:mockito-core:2.13.0'
androidTestImplementation 'org.mockito:mockito-android:2.13.0'
// AndroidJUnitRunner and JUnit Rules
androidTestImplementation 'com.android.support.test:rules:1.0.1'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
// https://developer.android.com/topic/libraries/testing-support-library/packages.html
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
androidTestCompile 'com.android.support.test.espresso:espresso-idling-resource:3.0.1'
请将这两个依赖项放入您的 gradle 文件中,
dependencies {
// Test helpers for LiveData
testImplementation "android.arch.core:core-testing:1.0.0"
// Test helpers for Room
testImplementation "android.arch.persistence.room:testing:1.0.0"
}
更多信息请阅读此link,
Android Architecture components integration guide
我认为某些链接库中存在冲突。
我解决了这个问题,我使用了 blockingGet() 和 blockingFirst().
最后,我用了
https://developer.android.com/training/testing/junit-runner.html#using-android-test-orchestrator
androidTestUtil 'com.android.support.test:orchestrator:1.0.1'
这就是你需要的!
将 testImplementation 替换为 androidTestImplementation。因此文件夹 androidTest 上的测试可以访问该库。
dependencies {
androidTestImplementation "androidx.arch.core:core-testing:2.1.0"
}
If you are not using androidx then use android.arch.core:core-testing:1.1.1
对于 androidX 迁移,添加
androidTestImplementation "androidx.arch.core:core-testing:2.0.0"
有时,测试依赖性问题可能是选择适当构建变体的问题,具体取决于您的 Gradle 配置。就我而言,测试仅针对调试构建变体进行了配置。
我知道已经晚了,但我想向这个已接受的答案添加一件事。
如果要使用,
@Rule
public InstantTaskExecutorRule instantTaskExecutorRule =
new InstantTaskExecutorRule();
在您的 JUnit 测试用例中,即在 test 文件夹中 然后使用以下依赖项,即与 testImplementation
dependencies {
testImplementation "android.arch.core:core-testing:1.0.0"
}
如果您想将 InstantTaskExecutorRule
用于 UI 或集成测试用例(androidTest 文件夹),请使用 androidTestImplementation。即:
androidTestImplementation "android.arch.core:core-testing:1.0.0"
如果你想为两者添加,请使用 androidTestImplementation & testImplementation 即:
androidTestImplementation "android.arch.core:core-testing:1.0.0"
testImplementation "android.arch.core:core-testing:1.0.0"
对于 Android-X 使用以下依赖项:
androidTestImplementation 'androidx.arch.core:core-testing:2.0.0'
或
测试实施'androidx.arch.core:core-testing:2.0.0'
dependencies {
testImplementation "androidx.arch.core:core-testing:2.1.0"
}
我打开示例代码BasicRxJavaSample(来自这篇文章Room+RxJava) 主要的是:
@Rule
public InstantTaskExecutorRule instantTaskExecutorRule =
new InstantTaskExecutorRule();
BasicRxJavaSample 就可以了。 但我不能在我的测试中应用它。 事情是这样的:
无法解析符号 InstantTaskExecutorRule
并且手动导入不起作用:
我的自动补全功能是这样的
但应该是这样
我的应用程序 build.gradle (full gradle here):
// tests
testImplementation 'junit:junit:4.12'
androidTestCompile "com.android.support:support-annotations:$supportVersion"
testImplementation "android.arch.core:core-testing:$archVersion"
// Test helpers for Room
testImplementation "android.arch.persistence.room:testing:1.0.0"
// https://github.com/mockito/mockito
testImplementation 'org.mockito:mockito-core:2.13.0'
androidTestImplementation 'org.mockito:mockito-android:2.13.0'
// AndroidJUnitRunner and JUnit Rules
androidTestImplementation 'com.android.support.test:rules:1.0.1'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
// https://developer.android.com/topic/libraries/testing-support-library/packages.html
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
androidTestCompile 'com.android.support.test.espresso:espresso-idling-resource:3.0.1'
请将这两个依赖项放入您的 gradle 文件中,
dependencies {
// Test helpers for LiveData
testImplementation "android.arch.core:core-testing:1.0.0"
// Test helpers for Room
testImplementation "android.arch.persistence.room:testing:1.0.0"
}
更多信息请阅读此link, Android Architecture components integration guide
我认为某些链接库中存在冲突。 我解决了这个问题,我使用了 blockingGet() 和 blockingFirst().
最后,我用了 https://developer.android.com/training/testing/junit-runner.html#using-android-test-orchestrator
androidTestUtil 'com.android.support.test:orchestrator:1.0.1'
这就是你需要的!
将 testImplementation 替换为 androidTestImplementation。因此文件夹 androidTest 上的测试可以访问该库。
dependencies {
androidTestImplementation "androidx.arch.core:core-testing:2.1.0"
}
If you are not using androidx then use
android.arch.core:core-testing:1.1.1
对于 androidX 迁移,添加
androidTestImplementation "androidx.arch.core:core-testing:2.0.0"
有时,测试依赖性问题可能是选择适当构建变体的问题,具体取决于您的 Gradle 配置。就我而言,测试仅针对调试构建变体进行了配置。
我知道已经晚了,但我想向这个已接受的答案添加一件事。
如果要使用,
@Rule
public InstantTaskExecutorRule instantTaskExecutorRule =
new InstantTaskExecutorRule();
在您的 JUnit 测试用例中,即在 test 文件夹中 然后使用以下依赖项,即与 testImplementation
dependencies {
testImplementation "android.arch.core:core-testing:1.0.0"
}
如果您想将 InstantTaskExecutorRule
用于 UI 或集成测试用例(androidTest 文件夹),请使用 androidTestImplementation。即:
androidTestImplementation "android.arch.core:core-testing:1.0.0"
如果你想为两者添加,请使用 androidTestImplementation & testImplementation 即:
androidTestImplementation "android.arch.core:core-testing:1.0.0"
testImplementation "android.arch.core:core-testing:1.0.0"
对于 Android-X 使用以下依赖项:
androidTestImplementation 'androidx.arch.core:core-testing:2.0.0'
或
测试实施'androidx.arch.core:core-testing:2.0.0'
dependencies {
testImplementation "androidx.arch.core:core-testing:2.1.0"
}