10

InstrumentationとAndroidTestCaseを実装しました。

私のテストでは、外部WIFIデバイスに接続する必要があります。テスターがテストで使用するSSIDを指定できるようにしたいと思います。

テストを実行するためのコマンドライン(adb shell am Instrument ...)を指定することは問題ではありませんが、SSIDをコマンドラインに追加してコードに抽出するにはどうすればよいですか?

4

3 に答える 3

12

解決策を見つけました。

テストランナーを InstrumentationTestRunner から継承させ、追加のデータを onCreate() で取得しました。

public class MyTestRunner extends InstrumentationTestRunner {

    public static String BAR;

    public void onCreate(Bundle arguments) {

        if (null != arguments) {    
            BAR = (String) arguments.get("foo"));
        }    
        super.onCreate(arguments);
    }
}

私は Android.mk に追加しました:

LOCAL_JAVA_LIBRARIES := android.test.runner

そして AndroidManifest.xml に:

<instrumentation 
    android:name="com.example.MyTestRunner"
    android:targetPackage="com.example" />

次のコマンド ラインを使用して実行しました。

adb shell am instrument -w -e foo the_value_of_bar com.example/com.example.MyTestRunner

コマンドラインから「foo」パラメーターを取得し、AndroidTestCase で BAR を使用することができました。

于 2013-03-04T09:36:50.760 に答える
0

これは、 ParameterizedJUnitTestのユースケースのように聞こえます。

ここで簡単なチュートリアルを確認してください。JUnit4を使用する必要があり、Androidのテストフレームワークがその準備ができているかどうかはわかりません。

とは言うものの、JUnit4はJUnit3と下位互換性があるため、理論的には、Androidテストケースランナーの下で、ビルドパスを少し使用してJUnit4アノテーションを使用することができます。

于 2013-03-04T09:53:13.890 に答える