mam do czynienia z następującym problemem:Android Espresso UI - Test uruchomiony powiodło się: bieg Instrumentation powiodło się z powodu „java.lang.IllegalAccessError”
Kiedy próbuje uruchomić test UI autonomicznego korzystania Espresso zawsze uzyskać następujący komunikat o błędzie konsoli bez uruchamiania testu.
Test running startedTest running failed: Instrumentation run failed due to 'java.lang.IllegalAccessError'
Empty test suite.
więc próbowałem uruchomić polecenie:
gradle -q dependencies
I i uzyskano następujące wyniki:
androidTestCompile - Classpath for compiling the androidTest sources.
+--- com.android.support:support-annotations:23.0.1
+--- com.android.support.test:runner:0.3
| +--- com.android.support.test:exposed-instrumentation-api-publish:0.3
| +--- junit:junit:4.12
| | \--- org.hamcrest:hamcrest-core:1.3
| \--- com.android.support:support-annotations:22.2.0 -> 23.0.1
+--- com.android.support.test:rules:0.3
| \--- com.android.support.test:runner:0.3 (*)
+--- com.android.support.test.espresso:espresso-core:2.1 -> 2.2
| +--- com.android.support.test.espresso:espresso-idling-resource:2.2
| +--- com.squareup:javawriter:2.1.1
| +--- javax.inject:javax.inject:1
| +--- org.hamcrest:hamcrest-library:1.3
| | \--- org.hamcrest:hamcrest-core:1.3
| +--- com.android.support.test:rules:0.3 (*)
| +--- org.hamcrest:hamcrest-integration:1.3
| | \--- org.hamcrest:hamcrest-library:1.3 (*)
| +--- com.google.code.findbugs:jsr305:2.0.1
| +--- javax.annotation:javax.annotation-api:1.2
| \--- com.android.support.test:runner:0.3 (*)
+--- com.android.support.test.espresso:espresso-intents:2.2
| \--- com.android.support.test.espresso:espresso-core:2.2 (*)
+--- com.android.support.test.espresso:espresso-web:2.2
| +--- org.ccil.cowan.tagsoup:tagsoup:1.2
| +--- com.android.support:support-annotations:22.2.0 -> 23.0.1
| \--- com.android.support.test.espresso:espresso-core:2.2 (*)
+--- com.android.support.test.uiautomator:uiautomator-v18:2.1.1
+--- com.android.support.test.espresso:espresso-contrib:2.2
| +--- com.google.android.apps.common.testing.accessibility.framework:accessibility-test-framework:2.0
| | \--- org.hamcrest:hamcrest-core:1.3
| +--- com.android.support:support-v4:22.2.0
| | \--- com.android.support:support-annotations:22.2.0 -> 23.0.1
| +--- com.android.support:recyclerview-v7:22.2.0
| | +--- com.android.support:support-annotations:22.2.0 -> 23.0.1
| | \--- com.android.support:support-v4:22.2.0 (*)
| \--- com.android.support.test.espresso:espresso-core:2.2 (*)
\--- com.android.support:multidex-instrumentation:1.0.1
próbowałem znaleźć jakieś rozwiązanie na ten temat, ale bez powodzenia.
nie wiem co dokładnie powinienem zaktualizować do pracy testowej.
Oto app.gradle plik konfiguracyjny
android {
compileSdkVersion 23
buildToolsVersion "23.0.0"
defaultConfig {
applicationId "test.my.app"
minSdkVersion 18
targetSdkVersion 23
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
// Enabling multidex support.
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
lintOptions {
abortOnError false
}
packagingOptions {
exclude 'LICENSE.txt'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
}
}
repositories {
jcenter()
mavenCentral()
maven { url "https://repo.commonsware.com.s3.amazonaws.com" }
maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
maven { url "https://jitpack.io" }
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:23.0.1'
compile 'com.google.android.gms:play-services:7.8.0'
compile 'com.mcxiaoke.volley:library:1.0.18'
compile 'com.orhanobut:logger:1.11'
compile 'com.google.code.gson:gson:2.3.1'
compile 'com.android.support:design:23.0.1'
// UI TESTING DEPENDENCIES
androidTestCompile 'com.android.support:support-annotations:23.0.1'
androidTestCompile 'com.android.support.test:runner:0.3'
androidTestCompile 'com.android.support.test:rules:0.3'
//androidTestCompile 'com.android.support.test:testing-support-lib:0.1'
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.1'
androidTestCompile 'com.android.support.test.espresso:espresso-intents:2.2'
androidTestCompile 'com.android.support.test.espresso:espresso-web:2.2'
androidTestCompile 'com.android.support.test.uiautomator:uiautomator-v18:2.1.1'
androidTestCompile 'com.android.support.test.espresso:espresso-contrib:2.2'
androidTestCompile('com.android.support:multidex-instrumentation:1.0.1') {
exclude group: 'com.android.support', module: 'multidex'
}
// ORM DATABASE DEPENDENCIES
compile 'com.michaelpardo:activeandroid:3.1.0-SNAPSHOT'
// STETHO CORE
compile 'com.facebook.stetho:stetho:1.1.1'
compile 'com.facebook.stetho:stetho-urlconnection:1.1.1'
compile 'com.facebook.stetho:stetho-okhttp:1.1.1'
// GOOGLE ANALYTICS
compile 'com.google.android.gms:play-services-analytics:7.8.0'
// JODA TIME FOR ANDROID
compile 'net.danlew:android.joda:2.8.2'
// SECURE SHARED PREFERENCES
compile 'com.scottyab:secure-preferences-lib:0.1.3'
// MATERIAL DIALOG
compile 'com.avast:android-styled-dialogs:2.2.0'
// SQL CIPHER
compile 'com.commonsware.cwac:sqlcipher-for-android:3.3.1'
// HTML PARSER
compile 'org.jsoup:jsoup:1.8.3'
// MULTIDEX SUPPORT
compile 'com.android.support:multidex:1.0.1'
// SECOND MATERIAL DIALOG
compile('com.afollestad.material-dialogs:core:[email protected]') {
transitive = true
}
compile('com.afollestad.material-dialogs:commons:[email protected]') {
transitive = true
}
// ANDROID BOOTSTRAP
compile 'com.beardedhen:androidbootstrap:2.0.0'
}
i przykładowe klasy Test:
@RunWith(AndroidJUnit4.class)
public class SignInActivityTest extends ActivityInstrumentationTestCase2<SignInActivity> {
public TestHelper tl = new TestHelper();
public SignInActivityTest() {
super(SignInActivity.class);
}
@Before
public void setUp() throws Exception {
super.setUp();
injectInstrumentation(InstrumentationRegistry.getInstrumentation());
SignInActivity lActivity = getActivity();
}
// Insert scenario methods here
@Test
public void processTest() throws InterruptedException {
// TODO: strings which are inserted into inputs should be defined as the string constants
// Discuss it with Jan Sedlacek.
tl.insertTextIntoInput(R.id.login_txv_username, "test");
tl.insertTextIntoInput(R.id.login_txv_password, "test");
}
}
Co należy zmienić, aby ta roboczego proszę? Cieszę się z wszelkiej pomocy.
udało Ci się to naprawić? Występuję w tym samym problemie. mój test faktycznie zastąpił AndroidTestCase. –
Cierpię z powodu tego samego problemu. Jakieś rozwiązanie? –