- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在运行 espresso uiautomator 测试,该测试在使用 android studio 上的绿色运行 > 按钮时运行良好。 (下图)
然而./gradlew connectedAndroidTest
给出一个错误:
No Koin Context configured. Please use startKoin or koinApplication DSL
为什么它可以通过 android studio 运行,但不能在 gradle 上运行?我该如何解决?
@LargeTest
@RunWith(AndroidJUnit4::class)
class MainActivityTest {
@Rule
@JvmField
var mActivityTestRule = ActivityTestRule(MainActivity::class.java)
lateinit var context: Context
lateinit var mainActivity: MainActivity
lateinit var idlingResource: MainActivityIdlingResource
private lateinit var myDevice: UiDevice
private val sleepMedium: Long = 1000
@Before
fun setup() {
context = InstrumentationRegistry.getInstrumentation().targetContext
mainActivity = mActivityTestRule.activity
myDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation())
idlingResource = MainActivityIdlingResource(
mActivityTestRule.activity.recyclerList,
mActivityTestRule.activity.javaClass.simpleName
)
IdlingRegistry.getInstance().register(idlingResource)
}
@After
fun teardown() {
IdlingRegistry.getInstance().unregister(idlingResource)
}
/**
* check swipe
*/
@Test
fun testSwipe() {
myDevice.findObject(UiSelector().descriptionContains("recyclerList"))
.swipeUp(2) //to scroll up
waitTime(sleepMedium)
myDevice.findObject(UiSelector().descriptionContains("recyclerList"))
.swipeDown(2) //to scroll down
waitTime(sleepMedium)
}
最佳答案
您必须使用 startKoin
并使用 androidContext
设置上下文为您的类(class) MainActivityTest
startKoin {
androidLogger()
// declare used Android context
androidContext(this@MainActivityTest)
// declare modules
modules(listOf(module1, module2, ...))
}
另外,请尝试检查您是否在 list 文件中注册了 Application 类
<application
android:name=".MainActivityTest"
如果这也不起作用,请升级。 Start 上下文已修复为更加一致。
关于android - Espresso 测试给出 : No Koin Context configured. 请使用 startKoin 或 koinApplication DSL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64841851/
我正在使用两个库,它们具有两个不同版本的 Koin 的依赖项。 其中一个图书馆有 org.koin:koin-android:2.0.1 另一个有 io.insert-koin:koin-core-j
我偶然发现了一个问题,我必须重新初始化我的 Retrofit API 类,因为 URL 发生了变化,所以我想告诉 Koin 重新初始化单个依赖项。我不想使用工厂,因为大多数时候它仍然是单例。 停止和启
收到消息错误 java.lang.RuntimeException: Unable to create application com.app.name.application.MainApplica
我最近删除了 jcenter()来自项目级构建 Gradle 的存储库。 从那时起,Koin(版本:2.2.2)开始给我下面的编译时错误:Could not find org.koin:koin-co
我有一个带有 MVVM 的简单 Android 项目,我正在使用 Koin。这些是我在 gradle 中的版本和依赖项: build.gradle // Koin implementation "or
我有一个模块: single{ (name: String) -> Person(name) } 当我这样做时: val alice: Person by inject {parametersOf("
我想知道如何使用 Koin 库正确地确定依赖关系的范围。 由于谷歌推荐 single Activity architecture AndroidX Navigation lib已成为通过轻松交换 Fr
我正在尝试使用 Koin 制作一个 Android 玩具项目。 我的项目有一个存储库和两个数据源(远程/缓存)。 以下是数据源: interface DataSource class CacheDat
我是测试新手,我将 Koin 改编为我的依赖注入(inject)。我的应用程序运行良好。它仍然具有登录功能。这是我的依赖类 模块.kt val applicationModule = module (
我的android项目中有两个模块,app模块和lib模块。 这两个模块都需要 Koin 进行 D.I.,所以我调用 startKoin在 MyApplication应用模块中的类和IninKoint
在我的 android 应用程序中,我有一个标记为 base 的模块。 base 中有几个类充当生命周期的基类(Controller、ViewModel 等)。我的应用程序在我的项目中与这些本地类一起
我对 Koin 和“androidTest”有疑问。因为 androidTest 启动了应用程序,所以我不需要在测试中自己启动 Koin。 现在我需要注入(inject)一个模拟服务。问题是,我在单例
我在 Android 项目中使用 Koin 作为我的 DI 框架,我想对我的模块进行单元测试。 例如:如果类 A 依赖于 B 和 C,请测试 B 和 C 是否包含在 Koin 图中,以及我是否将它们正
我正在我的 android 应用程序中实现 Koin DI。我成功地创建了一些模块。但是我遇到了一个异常,我试图从模块中的另一个获取对象。 这些是我的模块 val networkModule = mo
我有一个包含不同模块的应用程序,但项目正在增长,我们需要将项目拆分为不同的动态功能模块,因为用户(可能)不需要所有功能。我的问题是 Koin 需要从 Application 类启动应用程序将要加载的所
我正在开发一个新闻应用程序,我想在应用程序类中添加两个模块,但出现以下异常。 java.lang.RuntimeException: Unable to create application yodg
我有一个应用程序,每次用户登录时都会将用户数据保存在 SharedPref 中,但是当用户在前一个帐户注销后使用另一个帐户登录后,koin 仍然会获取以前的用户数据。 我已经检查了我的 createS
在构建基于 Kotlin 的 HTTP 服务器时,我正在尝试使用 Koin。 我正在使用一个框架,您可以在其中通过扩展一些框架提供的抽象类来编写您想要的行为,并在组件生命周期的各个点填写您的实现逻辑(
我是 KotlinPoet 的新手,我找不到如何创建以下 Koin 模块语句: internal val apiModules = module { single { get().create
我正在尝试使用 Koin 作为我的 D.I 来实现权限注入(inject) 但是,当我执行需要 PermissionRepository 的 ViewModel 时,我一直收到错误消息。 No def
我是一名优秀的程序员,十分优秀!