java.lang.RuntimeException:无法找到 AndroidJUnit4 的委托运行器 androidx.test.internal.runner.junit4.AndroidJUnit4ClassRunner

Gab*_*elo 4 junit android kotlin

我是 android 测试新手,我不\xc2\xb4t 知道如何解决这个问题。\n尝试从我的项目运行以下测试文件:

\n
@RunWith(AndroidJUnit4::class)\nclass AppDatabaseTest {\n  private lateinit var userDAO: UserDAO // custom DAO interface\n  private lateinit var db: AppDatabase\n\n  @Before\n  fun createDb() {\n    db = Room.inMemoryDatabaseBuilder(\n      ApplicationProvider.getApplicationContext(),\n      AppDatabase::class.java\n    ).allowMainThreadQueries().build()\n\n    userDAO = db.userDAO()\n  }\n\n  @After\n  @Throws(IOException::class)\n  fun closeDb() {\n    db.close()\n  }\n\n  @Test\n  @Throws(Exception::class)\n  fun insertAndReadUser() {\n    val user = User(\n      1,\n      "123",\n      "Test Name",\n      "link.to/name/image#from_the.web"\n    )\n    userDAO.insert(user)\n\n    val inserted = userDAO.getByUID(1)\n    assertThat(inserted).isNotNull()\n  }\n}\n
Run Code Online (Sandbox Code Playgroud)\n

在运行日志中抛出以下错误:

\n
\n

java.lang.RuntimeException:无法找到 AndroidJUnit4 的委托运行器 androidx.test.internal.runner.junit4.AndroidJUnit4ClassRunner。

\n
\n
\n

引起原因:java.lang.ClassNotFoundException:androidx.test.internal.runner.junit4.AndroidJUnit4ClassRunner

\n
\n

以下是项目依赖项:

\n
dependencies {\n    def room_version = "2.2.6"\n\n    implementation "androidx.room:room-runtime:$room_version"\n    kapt "androidx.room:room-compiler:$room_version"\n    implementation "androidx.room:room-ktx:$room_version"\n\n    implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"\n    implementation \'androidx.core:core-ktx:1.3.2\'\n    implementation \'androidx.appcompat:appcompat:1.2.0\'\n    implementation \'com.google.android.material:material:1.2.1\'\n    implementation \'androidx.constraintlayout:constraintlayout:2.0.4\'\n    implementation \'androidx.navigation:navigation-fragment-ktx:2.3.2\'\n    implementation \'androidx.navigation:navigation-ui-ktx:2.3.2\'\n    implementation \'androidx.lifecycle:lifecycle-livedata-ktx:2.2.0\'\n    implementation \'androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.0\'\n    implementation \'androidx.navigation:navigation-fragment-ktx:2.3.2\'\n    implementation \'androidx.navigation:navigation-ui-ktx:2.3.2\'\n\n    testImplementation \'com.google.truth:truth:1.1\'\n    testImplementation \'junit:junit:4.13.1\'\n    testImplementation \'androidx.test.ext:junit:1.1.2\'\n\n    androidTestImplementation \'androidx.test.ext:junit:1.1.2\'\n    androidTestImplementation \'androidx.test.espresso:espresso-core:3.3.0\'\n}\n
Run Code Online (Sandbox Code Playgroud)\n

什么可能导致此错误以及如何修复它?

\n

安卓工作室4.1.1

\n

Gab*_*elo 7

我设法找到了问题。事实上,我将测试文件放在了错误的文件夹中,即 [test] 文件夹而不是 [androidTest] 文件夹。将文件移动到正确的文件夹可以解决问题。