私はdevモードまたはデバイステスト中であるかどうかに応じてコマンドラインまたはeclipseを使用してアンドロイドのjunitテストを実行しています。アンドロイドのjunitテスト(パラメータ化されたテスト)に引数を渡す方法
Javaアプリケーションは、メイン(文字列[]引数)メソッドを持っており、それに引数を渡すことは容易である(いずれか、またはコマンドラインによって実行される構成セクションで引数タブでEclipseと)
アンドロイドjunitテストのためにそれは異なっています、メインメソッドはありませんし、私はいくつかの引数を設定することができますどこにもありません。
ここでは、プロパティファイルを使用する方法があります。それが唯一の方法ですか? すばやく簡単な例があれば、非常に感謝しています。
おかげ
>>> Edit <<<
私はRobotiumを使用しています、とJUnitはActivityInstrumentationTestCase2 は非常に基本的なJUnitテストの下を参照してください。拡張:
import android.test.ActivityInstrumentationTestCase2;
import android.util.Log;
import com.jayway.android.robotium.solo.Solo;
public class Test_arg extends ActivityInstrumentationTestCase2 {
private static final String TARGET_PACKAGE_ID = "com.myapp.test";
private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME = "com.myapp";
private static Class launcherActivityClass;
private Solo solo;
static {
try {
launcherActivityClass = Class.forName(LAUNCHER_ACTIVITY_FULL_CLASSNAME);
} catch (ClassNotFoundException e) {
throw new RuntimeException(e);
}
}
public Test_arg() throws ClassNotFoundException {
super(TARGET_PACKAGE_ID, launcherActivityClass);
}
@Override
protected void setUp() throws Exception {
solo = new Solo(getInstrumentation(), getActivity());
}
@Override
public void tearDown() throws Exception {
try {
solo.finishOpenedActivities();
solo.finalize();
} catch (Throwable e) {
e.printStackTrace();
}
super.tearDown();
}
public void test_01() throws InterruptedException {
Log.i("TEST", "test");
}
}
とAndroidマニフェスト
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.myapp.test"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="5" />
<instrumentation
android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.slacker.radio" android:functionalTest="true"/>
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<uses-library android:name="android.test.runner" />
</application>
</manifest>
同様の質問:http://stackoverflow.com/questions/683764/passing-junit-command-line-parameters-in-eclipse http://stackoverflow.com/ test/2884163/pass-command-line-arguments-to-junit-test-case-being-run-programmatically –
コマンドラインからテストに引数を渡すのは実用的ではありません。何を渡したいですか?異なるテストスイートを作成したり、テスト内で引数を作成したりする理由は何ですか? – Leonidos
レイ、私の質問では、私はシステムのプロパティの方法を認識している、私はちょうど(コマンド引数のような)よりストレートな方法を探していると述べた。_ レオニードス。私は単体テストの議論を渡すのがベストプラクティスではないことを理解しています。私の場合、いくつかの変更はサーバー側で行われ、サーバー側ではオンとオフの切り替えが行われます。私のテストはコマンドラインで自動的に実行されるので、サーバーの変更があったときにテストを再度コンパイルする必要はありません。 – Franck