launchFragmentInContainer не может разрешить активность в Android - PullRequest
0 голосов
/ 12 июня 2019

При написании простого теста, использующего launchFragmentInContainer, я получаю следующее сообщение об ошибке:

java.lang.RuntimeException: Unable to resolve activity for: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.myapp.appname.debug/androidx.fragment.app.testing.FragmentScenario$EmptyFragmentActivity (has extras) }

Базовый тестовый класс:

class OneFragmentTest {

    @Test
    fun testOneFragmentState_checkTitleText() {
        val args = Bundle().apply {
            putString("dummyKey", "dummyValue")
        }
        launchFragmentInContainer<OneFragment>(args)

        onView(withId(R.id.tv_title)).check(matches(withText("title here")))
    }
}

Я попытался обновить AndroidManifest.xml следующим текстом:

<instrumentation
        android:name="android.test.InstrumentationTestRunner"
        android:targetPackage="com.myapp.appname" />

но похоже, что тег instrumentation допустим, но значения написаны красным, поэтому я предполагаю, что что-то не так с targetPackage и name.

Как мне избавиться от этой ошибки и запустить простой тест на OneFragment, используя launchFragmentInContainer?

1 Ответ

2 голосов
/ 12 июня 2019

Ошибка была связана с тем, как я импортировал зависимости в Gradle.

До:

androidTestImplementation("androidx.fragment:fragment-testing:1.1.0-beta01")
implementation("androidx.fragment:fragment-ktx:1.1.0-beta01")
androidTestImplementation("androidx.test:core:1.2.0")
androidTestImplementation("androidx.test:rules:1.2.0")
androidTestImplementation("androidx.test:runner:1.2.0")

После:

implementation("androidx.fragment:fragment-testing:1.1.0-beta01")
implementation("androidx.fragment:fragment-ktx:1.1.0-beta01")
implementation("androidx.test:core:1.2.0")
implementation("androidx.test:rules:1.2.0")
implementation("androidx.test:runner:1.2.0")

Изменено с androidTestImplementation к implementation и это решило проблему.Компиляция и запуск, и зеленый тест как результат.

...