的恩惠到期在19小時。這個問題的答案有資格獲得 50聲望獎勵。 Sodnarts正在尋找規范的答案。
我在 Stack Overflow 上沒有找到任何有用的帖子,所以我發布了我自己的問題。
我有一個習慣testInstrumentationRunner,即設定時不運行任何測驗。日志說:
App restart successful without requiring a re-install.
Running tests
adb shell am instrument -w -m --no-window-animation -e debug false -e class 'com.my.app.MyFragmentTest' com.my.app.debug.test/com.my.app.CustomTestRunner
Connected to process on device
正常androidx.test.runner.AndroidJUnitRunner運行時,測驗運行,但失敗,因為我需要自定義運行器。
runner 的設定類似于 androidx one,在:
defaultConfig {
// testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner
testInstrumentationRunner "com.my.app.CustomTestRunner"
}
它也位于-folder中的com.my.app包中androidTest
跑步者的代碼是:
package com.my.app
import ...
class CustomTestRunner: AndroidJUnitRunner() {
override fun newApplication(cl: ClassLoader?, className: String?, context: Context?): Application {
DexOpener.install(this)
Timber.i("This should print hopefully")
return super.newApplication(cl, ApplicationTest::class.java.canonicalName, context)
}
}
不確定它是否重要,但這是應用程式類的代碼,它擴展了用于應用程式本身的應用程式類:
package com.my.app
class ApplicationTest: MyApplication() {
override fun onCreate() {
super.onCreate()
appContext = applicationContext
initializeDependencyInjection()
}
override fun initializeDependencyInjection() {}
}
我有一個我正在嘗試運行的測驗用例,其中包含 7 個測驗。androidx runner 在 7/7 測驗中失敗。但是當我使用自定義運行器運行時,我得到duration 0ms0/0 測驗。
所以看起來Android沒有檢測到這個跑步者。我還使用 testInstrumentationRunner 中的隨機名稱獲得了相同的結果,例如testInstrumentationRunner "not.a.TestRunner"
uj5u.com熱心網友回復:
不要在儀器測驗和單元測驗之間混用:
單元測驗
單元測驗在本地 JVM 中運行并最大限度地減少執行時間。單元測驗無法在不模擬活動物件的情況下測驗應用程式的 UI。單元測驗用于測驗代碼的白盒測驗。大多數時候單元測驗是由開發人員撰寫的。您不需要連接設備來執行單元測驗。
儀器測驗
儀器測驗用于黑盒測驗。它用于在實際環境中測驗應用程式的 GUI 及其功能。為了執行 Instrumentation 測驗,您需要一個設備/模擬器,首先在其上安裝應用程式然后執行測驗。自動化測驗人員參與撰寫儀器框架。
uj5u.com熱心網友回復:
測驗庫模塊時,您可以在src/androidTest/AndroidManifest.xml以下位置鏈接測驗應用程式:
<manifest
xmlns:android="http://schemas.android.com/apk/res/android">
<application
android:name="com.my.app.ApplicationTest"/>
</manifest>
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/311282.html
上一篇:提供的javaHome似乎無效。我找不到java可執行檔案。試過的位置:C:\ProgramFiles\Java\jdk-17\bin\java.exe
