AndroidX的未解析引用ActivityTestRule

AndroidX的未解析引用ActivityTestRule,android,testing,kotlin,android-espresso,androidx,Android,Testing,Kotlin,Android Espresso,Androidx,我正在尝试使用androidX espresso库通过仪器测试来测试我的UI。 在我的年级里,我有: apply插件:“com.android.application” 应用插件:“kotlin android” 应用插件:“kotlin android扩展” 应用插件:“kotlin kapt” 安卓{ 编译DK28版 默认配置{ 应用程序ID“it.zehus.mybike” 明斯克版本21 targetSdkVersion 28 版本代码1 版本名称“1.0” TestInstrument

我正在尝试使用androidX espresso库通过仪器测试来测试我的UI。 在我的年级里,我有:

apply插件:“com.android.application”
应用插件:“kotlin android”
应用插件:“kotlin android扩展”
应用插件:“kotlin kapt”
安卓{
编译DK28版
默认配置{
应用程序ID“it.zehus.mybike”
明斯克版本21
targetSdkVersion 28
版本代码1
版本名称“1.0”
TestInstrumentRunner“androidx.test.runner.AndroidJUnitRunner”
android.defaultConfig.manifestPlaceholders=['appAuthRedirectScheme':'net.openid.appauthdemo']
}
建筑类型{
释放{
minifyEnabled false
proguard文件GetDefaultProGuard文件('proguard-android-optimize.txt'),'proguard rules.pro'
}
}
}
依赖关系{
实现文件树(目录:“libs”,包括:['*.jar'])
def lifecycle_version=“2.0.0”
//ViewModel和LiveData
实现“androidx.lifecycle:生命周期扩展:$lifecycle\u版本”
//房间持久性图书馆
def室版本=“2.1.0-alpha04”
实现“androidx.room:room运行时:$room\u版本”
kapt“androidx.room:room编译器:$room_version”//对Kotlin使用kapt
//可选-房间的协同程序支持
实现“androidx.room:room协程:$room\u版本”
实现“org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_版本”
实现“androidx.appcompat:appcompat:1.0.2”
实现“androidx.constraintlayout:constraintlayout:1.1.3”
实现'com.google.android.material:material:1.0.0'
//浓缩咖啡
androidTestImplementation'androidx.test:runner:1.1.0'
AndroidTest实现“androidx.test.espresso:espresso核心:3.1.0”
实施项目(路径:':remotemanager')
实现“org.jetbrains.kotlin:kotlin reflect:1.3.21”
androidTestImplementation'androidx.test.ext:junit:1.1.0'
//如果要将Mockito用于单元测试,则需要此选项
测试实现“org.mockito:mockito核心:2.24.5”
//如果您想将Mockito用于Android测试,则需要此选项
androidTestImplementation'org.mockito:mockito android:2.24.5'
//蓝牙sdk
实施项目(路径:':bluetoothmanager')
//自定义视图
实施项目(路径:':CustomView')
}
如中所述,我正在尝试在测试中导入ActivityTestRule类,但是引用未解析

导入androidx.test.filters.LargeTest
导入androidx.test.runner.AndroidJUnit4
导入org.junit.Rule
导入org.junit.Test
导入org.junit.runner.RunWith
//此处未解析的引用
导入androidx.test.rule.ActivityTestRule
导入it.zehus.mybike.ui.ride.RideActivity
/**
*仪器化测试,将在Android设备上执行。
*
*参见[测试文档](http://d.android.com/tools/testing).
*/
//这里不推荐
@RunWith(AndroidJUnit4::类)
@最大的
类碎片DashboardUITest{
@get:Rule//此处为未解析引用
val activityRule=ActivityTestRule(RideActivity::class.java)
@试验
有趣的myClassMethod_ReturnsTrue(){}
}
我是做错了什么,还是AndroidX测试库中有问题?

我从文档页面发现类ActivityTestRule位于AndroidX中的AndroidX.test.rule下。为了导入包,我只添加了:

 androidTestImplementation 'androidx.test:rules:1.2.0'
给我的格拉德尔

总而言之,我的gradle现在包含:

//浓缩咖啡
//核心库
AndroidTest实现“androidx.test.espresso:espresso核心:3.2.0”
//AndroidJUnitRunner和JUnit规则
androidTestImplementation'androidx.test:runner:1.2.0'
androidTestImplementation'androidx.test:规则:1.2.0'

该类在包中:androidx.test.ext.junit.rules

显然,最重要的依赖性是:

androidTestImplementation'androidx.test.ext:junit:1.1.2'

我想知道为什么另一个答案被提升了这么多, 但这对我根本不起作用


希望这能帮助像我这样的人。

请将build.gradle文件发布为well@AndroidEnthusiast格雷德尔更新了@ArtemBotnev感谢您的链接,它有助于AndroidJUnit4的弃用。对于未来的读者,您可以随时通过转到并搜索包名来查找任何给定包的最新版本。在本例中,搜索
android.test
并展开
规则
子包。