エスプレッソテストを立ち上げようとしていますが、このエラーが発生し続けます。
INSTRUMENTATION_STATUS: Error=Unable to find instrumentation info for: ComponentInfo{com.mikeestrada.test/Android.test.InstrumentationTestRunner}
一度は機能しましたが、レポートを正しく再作成できません。それらは空白であり、何もテストしませんでした。私は次のようなコマンドをたくさん試しました
adb Shell am instrument -w -r com.mikeestrada.test/Android.test.InstrumentationTestRunner
そして
adb Shell am instrument -w -r com.mikeestrada.test/com.google.Android.apps.common.testing.testrunner.GoogleInstrumentation TestRunner
コードスニペットは次のとおりです。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
package="com.example.myapplication"
Android:versionCode="1"
Android:versionName="1.0" >
<uses-sdk
Android:minSdkVersion="7"
Android:targetSdkVersion="19" />
<application
Android:allowBackup="true"
Android:icon="@drawable/ic_launcher"
Android:label="@string/app_name"
Android:theme="@style/AppTheme" >
<activity
Android:name="com.example.myapplication.MainActivity"
Android:label="@string/app_name" >
<intent-filter>
<action Android:name="Android.intent.action.MAIN" />
<category Android:name="Android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<instrumentationandroid:name="com.google.Android.apps.common.testing.testrunner.GoogleInstrumentationTestRunner"
Android:targetPackage="com.mikeestrada.test"/>
package com.mikeestrada.test;
import Android.test.ActivityInstrumentationTestCase2;
import Android.test.ActivityUnitTestCase;
import Android.test.AndroidTestCase;
import Android.test.suitebuilder.annotation.LargeTest;
import Android.view.View;
import com.example.myapplication.MainActivity;
import com.example.myapplication.R;
import com.google.Android.apps.common.testing.ui.espresso.Espresso;
import com.google.Android.apps.common.testing.ui.espresso.ViewAssertion;
import com.google.Android.apps.common.testing.ui.espresso.ViewInteraction;
import com.google.Android.apps.common.testing.ui.espresso.action.ViewActions;
import com.google.Android.apps.common.testing.ui.espresso.assertion.ViewAssertions;
import com.google.Android.apps.common.testing.ui.espresso.matcher.ViewMatchers;
import junit.framework.Assert;
import org.hamcrest.Matcher;
public class TestStartScreen extends ActivityInstrumentationTestCase2<MainActivity> {
public TestStartScreen() {
super(MainActivity.class);
}
@LargeTest
public void testHelloWorld(final Matcher<View> viewMatcher) {
// Find
//ViewInteraction button1 = onView(ViewMatchers.withId(R.id.button1)); // Find the button
ViewInteraction helloWorldText = Espresso.onView(ViewMatchers.withText("Hello world!")); // Find the text
// Action
//button1.perform(ViewActions.click()); // Click the button
helloWorldText.perform(ViewActions.typeText("Bye World!"));
Espresso.onView(ViewMatchers.withText(R.id.withText));
// Check
helloWorldText.check(ViewAssertions.matches((ViewMatchers.isDisplayed()))); // Hello world text is hidden
//Espresso.onView(withId(R.id.my_view)).check(matches(withText("Hello world!")));
}
}
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.Android.tools.build:gradle:0.7.+'
}
}
apply plugin: 'Android'
repositories {
mavenCentral()
}
Android {
compileSdkVersion 19
buildToolsVersion "19.0.0"
defaultConfig {
minSdkVersion 7
targetSdkVersion 19
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
assets.srcDirs = ['assets']
}
}
}
dependencies {
compile 'com.Android.support:appcompat-v7:+'
instrumentTestCompile files('libs/espresso-1.1-bundled.jar')
}
Android {
defaultConfig {
testInstrumentationRunner "com.google.Android.apps.common.testing.testrunner.GoogleInstrumentationTestRunner"
}
}
task wrapper (type: Wrapper) {
gradlerVersion = '1.9'
}
それが何かを意味する場合-マニフェスト内の<instrumentation>
の属性は、IntelliJがそれらを認識しないかのように赤色で表示されます。
どんな助けも素晴らしいです、ありがとう!
デバイスにインストールされているインストルメンテーションパッケージを確認する必要があります。
adb Shell pm list instrumentation
次に、com.mikeestrada.testが実際にリストされているかどうかを確認します。
Build.gradleファイルを見ると、実際の問題はdefaultConfigセクションに次の構成がないことです。
testInstrumentationRunner "com.google.Android.apps.common.testing.testrunner.GoogleInstrumentationTestRunner"
Espressoを使用するには、GoogleInstrumentationTestRunner
が必要です。
また、gradleビルドシステムでは、テストプロジェクトが自動生成されるため、AndroidManifest.xml
は必要ありません。
また、アプリパッケージはcom.mikeestrada
。そのため、AndroidManifestではAndroid:targetPackage
なので Android:targetPackage="com.mikeestrada"
。
これが役立つことを願っています。
問題は、スペースが不足していることです:
instrumentationandroid:name
あるべき
instrumentation Android:name