在 Firebase 应用程序中组合的仪器测试
Instrumentation testing in compose in a firebase app
我正在尝试在 compose 中创建测试,但我总是收到以下错误:
Default FirebaseApp is not initialized in this process X. Make sure to call FirebaseApp.initializeApp(Context) first.
我尽量简化了测试代码:
@get:Rule
val composeTestRule = createComposeRule()
@Test
fun test() {
composeTestRule.setContent {
Text("Whatever")
}
}
但仍然出现该错误。
我试过 uiThreadTestRule:
@get:Rule
val composeTestRule = createComposeRule()
@get:Rule
var uiThreadTestRule: UiThreadTestRule = UiThreadTestRule()
@Test
fun test() {
uiThreadTestRule.runOnUiThread {
FirebaseApp.initializeApp(InstrumentationRegistry.getInstrumentation().targetContext)
}
composeTestRule.setContent {
Text("Whatever")
}
}
也有相同的composeTestRule.runOnUiThread:
@get:Rule
val composeTestRule = createComposeRule()
@Test
fun test() {
composeTestRule.runOnUiThread {
FirebaseApp.initializeApp(InstrumentationRegistry.getInstrumentation().targetContext)
}
composeTestRule.setContent {
Text("Whatever")
}
}
如何修复 FirebaseApp is not initialized
错误,以便测试此应用的可组合项?
更新
这似乎与 createComposeRule() 有关,导致以下测试:
@get:Rule
val composeTestRule: ComposeContentTestRule = createComposeRule()
@Test
fun test() {
assertEquals(2, 1 + 1)
}
也失败了,如果我删除规则,它就会通过。
如果可以删除它,我不需要测试中的 firebase 依赖项。
将此添加到该模块的 gradle 文件中以排除 firebase 依赖项:
configurations {
androidTestImplementation {
exclude group: 'com.google.firebase', module: 'firebase-perf'
}
}
我正在尝试在 compose 中创建测试,但我总是收到以下错误:
Default FirebaseApp is not initialized in this process X. Make sure to call FirebaseApp.initializeApp(Context) first.
我尽量简化了测试代码:
@get:Rule
val composeTestRule = createComposeRule()
@Test
fun test() {
composeTestRule.setContent {
Text("Whatever")
}
}
但仍然出现该错误。
我试过 uiThreadTestRule:
@get:Rule
val composeTestRule = createComposeRule()
@get:Rule
var uiThreadTestRule: UiThreadTestRule = UiThreadTestRule()
@Test
fun test() {
uiThreadTestRule.runOnUiThread {
FirebaseApp.initializeApp(InstrumentationRegistry.getInstrumentation().targetContext)
}
composeTestRule.setContent {
Text("Whatever")
}
}
也有相同的composeTestRule.runOnUiThread:
@get:Rule
val composeTestRule = createComposeRule()
@Test
fun test() {
composeTestRule.runOnUiThread {
FirebaseApp.initializeApp(InstrumentationRegistry.getInstrumentation().targetContext)
}
composeTestRule.setContent {
Text("Whatever")
}
}
如何修复 FirebaseApp is not initialized
错误,以便测试此应用的可组合项?
更新
这似乎与 createComposeRule() 有关,导致以下测试:
@get:Rule
val composeTestRule: ComposeContentTestRule = createComposeRule()
@Test
fun test() {
assertEquals(2, 1 + 1)
}
也失败了,如果我删除规则,它就会通过。 如果可以删除它,我不需要测试中的 firebase 依赖项。
将此添加到该模块的 gradle 文件中以排除 firebase 依赖项:
configurations {
androidTestImplementation {
exclude group: 'com.google.firebase', module: 'firebase-perf'
}
}