ir2*_*pid 6 android android-espresso android-junit
我正在运行一个 espresso uiautomator 测试,该测试在 android studio 上使用绿色运行 > 按钮时运行良好。(下图)
然而./gradlew connectedAndroidTest
是给出一个错误:
No Koin Context configured. Please use startKoin or koinApplication DSL
Run Code Online (Sandbox Code Playgroud)
为什么它通过 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)
}
Run Code Online (Sandbox Code Playgroud)
您必须使用您的班级startKoin
来使用和设置上下文androidContext
MainActivityTest
startKoin {
androidLogger()
// declare used Android context
androidContext(this@MainActivityTest)
// declare modules
modules(listOf(module1, module2, ...))
}
Run Code Online (Sandbox Code Playgroud)
另外,尝试检查您是否在清单文件中注册了应用程序类
<application
android:name=".MainActivityTest"
Run Code Online (Sandbox Code Playgroud)
如果这也不起作用,请升级。开始上下文已得到修复,更加一致。
归档时间: |
|
查看次数: |
250 次 |
最近记录: |