亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

java.lang.IllegalStateException:未注冊檢測!必須在注冊儀器下運行

java.lang.IllegalStateException:未注冊檢測!必須在注冊儀器下運行

慕村225694 2021-12-10 15:38:52
我一直在嘗試使用 Espresso 執行一個簡單的 UI 測試,但我所有的測試都失敗了,但出現了相同的異常:java.lang.IllegalStateException:未注冊檢測!必須在注冊儀器下運行這是在使用一個esspresso新手引導在這里。我已經找到了類似的問題,但與我最相關的問題在這里沒有得到解答- 我認為這是因為他們沒有描繪出整個畫面,所以這是我的代碼。我將只展示一個測試,因為它們都以完全相同的錯誤失敗:build.gradle(模塊:app)apply plugin: 'com.android.application'android {    compileSdkVersion 27    defaultConfig {        applicationId "io.github.vinge1718.myrestaurants"        minSdkVersion 15        targetSdkVersion 27        versionCode 1        versionName "1.0"        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"        //testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"    }    buildTypes {        release {            minifyEnabled false            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'        }    }    testOptions {        unitTests {            includeAndroidResources = true        }    }}dependencies {    testImplementation "org.robolectric:robolectric:3.8"    implementation fileTree(dir: 'libs', include: ['*.jar'])    implementation 'com.android.support:appcompat-v7:27.1.1'    implementation 'com.android.support.constraint:constraint-layout:1.1.3'    testImplementation 'junit:junit:4.12'    androidTestImplementation 'com.android.support.test:runner:1.0.2'    androidTestImplementation('com.android.support.test.espresso:espresso-core:3.0.2', {        exclude group: 'com.android.support', module: 'support-annotations'    })    androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0'    androidTestImplementation 'androidx.test:runner:1.1.0'    androidTestImplementation 'androidx.test:rules:1.1.0'    androidTestImplementation 'org.hamcrest:hamcrest-library:1.3'}build.gradle(項目:MyRestaurant)更正這里是兩個測試。我不認為錯誤與測試本身有任何關系,而是與配置有關 - 不過我已經糾正了
查看完整描述

3 回答

?
白豬掌柜的

TA貢獻1893條經驗 獲得超10個贊

我認為這是因為庫androidxcom.android.support.test. 如果你想使用 jetpack,你必須將所有的測試庫轉換為 androidx,如果你不想那樣,只需刪除你的androidx庫并使用所有com.android.support.test. 查看我在Android Instrumentation Testing 中的最新答案: No instrumentation Registration Error。希望這對你有幫助。


查看完整回答
反對 回復 2021-12-10
?
慕村9548890

TA貢獻1884條經驗 獲得超4個贊

我有同樣的問題,并測試其在類的健身方法,這些標準單元之間存在差異的測試中去app/src/test/java/<package>。與按鈕交互、編輯文本等的UI測試需要 expresso 并進入app/src/androidTest/java/<package>。我花了好幾遍閱讀文檔,浪費了一天時間才弄明白其中的區別。


|____app

  |

  | ____src 

  |   |____androidTest

  |   |  |____java

  |   |     |____<package>

  |   |        |____ MainActivityInstrumentationTest.java  # expresso here 

  |   |____test

  |      |____java

  |         |____<package>

  |            |____ MainActivityInstrumentationTest.java  # not here


查看完整回答
反對 回復 2021-12-10
?
波斯汪

TA貢獻1811條經驗 獲得超4個贊

對我有用的是完全變回


安卓X



com.android.support


build.gradle 中的庫


請注意:您可能需要重新導入類中的庫,例如


import androidx.test.runner.AndroidJUnitRunner;


import android.support.test.runner.AndroidJUnitRunner;

還要確保在每次從 build.gradle 添加或刪除庫后始終清理和重建項目。


查看完整回答
反對 回復 2021-12-10
  • 3 回答
  • 0 關注
  • 291 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號