6

JenkinsでセットアップしようとしているAndroidアプリケーションがあります。Android Emulator Plugin を使用してエミュレーターを起動し、gradle スクリプトを使用してプロジェクトをビルドしましたが、AndroidJUnitRunner を使用して作成した簡単なテストを実行できません。

Jenkins からの私の出力は次のようになります...

+ adb shell pm list instrumentation
instrumentation:com.android.emulator.connectivity.test/android.test.InstrumentationTestRunner (target=com.android.emulator.connectivity.test)
instrumentation:com.android.emulator.gps.test/android.test.InstrumentationTestRunner (target=com.android.emulator.gps.test)
instrumentation:com.android.smoketest.tests/com.android.smoketest.SmokeTestRunner (target=com.android.smoketest)
instrumentation:com.android.smoketest.tests/android.test.InstrumentationTestRunner (target=com.android.smoketest)
instrumentation:com.example.android.apis/.app.LocalSampleInstrumentation (target=com.example.android.apis)
[Short Sounds] $ /bin/sh -xe /tmp/hudson7415767398022941631.sh
+ adb shell am instrument -w com.sloths.speedy.shortsounds/android.support.test.runner.AndroidJUnitRunner
INSTRUMENTATION_STATUS: id=ActivityManagerService
INSTRUMENTATION_STATUS: Error=Unable to find instrumentation info for: ComponentInfo{com.sloths.speedy.shortsounds/android.support.test.runner.AndroidJUnitRunner}
INSTRUMENTATION_STATUS_CODE: -1
android.util.AndroidException: INSTRUMENTATION_FAILED: com.sloths.speedy.shortsounds/android.support.test.runner.AndroidJUnitRunner

ご覧のとおり、シェル コマンドを使用して adb インストルメンテーションを一覧表示しました。AndroidJUnitRunner はリストのどこにもありません。私は、正しく機能するためにそこにあるはずだと半確信しています。

build.gradle ファイルに適切な構成タグを追加しました...つまり...

defaultConfig { 
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}

これらの依存関係も追加しました。

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    ...
    androidTestCompile 'com.android.support.test:runner:0.2'
    // Set this dependency to use JUnit 4 rules
    androidTestCompile 'com.android.support.test:rules:0.2'
    androidTestCompile 'com.android.support.test.espresso:espresso-core:2.1'
}

ここで役立つ場合は、実行しようとしているテストです。失敗させたいのは単純な単体テストです。

import android.support.test.runner.AndroidJUnit4;
import android.test.ActivityInstrumentationTestCase2;
import com.sloths.speedy.shortsounds.view.MainActivity;
import org.junit.Test;
import org.junit.runner.RunWith;

@RunWith(AndroidJUnit4.class)
public class InitialFailingTest extends ActivityInstrumentationTestCase2<MainActivity> {

    public InitialFailingTest() {
        super(MainActivity.class);
    }

    @Override
    protected void setUp() throws Exception {
        super.setUp();
    }

    @Test
    public void initialFailingTestForJenkins() {
        assertTrue(false);
    }
}

Jenkins に単体テストを実際に実行させるにはどうすればよいですか? どんな助けでも大歓迎です。

4

2 に答える 2

5

の準備手順を実行することもできconnectedAndroidTestます

./gradlew installDebug installDebugAndroidTest

そうすると、テスト パッケージと AndroidJUnitRunner が表示されるはずですpm list instrumentationam instrument後で大きなテスト スイートがあり、より多くのオプション (テスト サイズの指定など) を使用してコマンドを呼び出したい場合に役立つ場合があります。

于 2015-06-29T18:01:44.813 に答える