1

RobotiumでBDDテストを作成する方法を知っているかどうか知りたい.

Robotiumは別の仮想マシン(Dalvik)で動作することを調査しているため、Junit Testとして実行できません(Android Junit Testのみ)。そこで、RoboRemote https://github.com/groupon/robo-remoteを使用して Junit で Robotium を実行する解決策を見つけました。しかし、キュウリと統合しようとすると、テストが不安定になりました。

Robotiumを使ってBDDテストを作成する方法を知っていますか?

4

3 に答える 3

2

Android 用の Cucumber-JVM を使用して、Robotium の統合に成功しました。

cucumber-androidCucumber-JVMの現在の公式モジュールとインストールに関する情報については、こちらを参照してください。また、Cucumber-JVM に関する API ドキュメントと例は、http: //cukes.info/platforms.htmlにあります。

アプリのテスト モジュールで、Robotium Solo jar ファイルを依存関係 (スコープ: コンパイル) として追加するだけです。

私のテストクラスの1つは次のようになります。

public class CucumberSteps extends ActivityInstrumentationTestCase2<YourActivity> {

  private Solo solo;

  public CucumberSteps() {
    super(YourActivity.class);
  }

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

  @Before
  public void before() {
    solo = new Solo(getInstrumentation(), getActivity());
  }

  @After
  public void after() throws Throwable {
    //clean up
    solo.finalize();
  }

  @Override
  protected void tearDown() throws Exception {
    solo.finishOpenedActivities();
    super.tearDown();
  }

  @Given("^step_given_description$")
  public void step_given_description() throws Throwable {
    final View testView = solo.getView(R.id.testView);
    solo.waitForView(testView);
    solo.clickOnView(testView);
    // and so on
  }
}

これが、誰でも始めるのに十分な情報であることを願っています。この質問がされたとき、cucumber-android はまだ存在していませんでした。ただし、GUI テストは非常に不安定な場合が多いので注意してください。安定した一連のテストをローカルで取得することができましたが、たとえば Jenkins では、通常、いくつかのテストが不明な理由で失敗します。

于 2013-11-12T21:50:56.297 に答える
1

非常に古い質問であることは知っていますが、この件に関するドキュメントは非常に限られているため、別の情報を投稿します。

この記事は私を大いに助けてくれました: http://www.opencredo.com/2014/01/28/cucumber-android-vs-cucumber-appium/

また、ここでもドキュメントを使用しました (非推奨であることはわかっていますが、メイン プロジェクトには Android に関するドキュメントはまったくありません): https://github.com/mfellner/cucumber-android

Android Bootstrap のビットを使用して、IntelliJ 13 Community Edition と Maven で動作するようにしました - http://www.androidbootstrap.com/ (主に Maven 統合テスト プロジェクトの構成)

それが役に立てば幸い。

于 2014-02-16T14:09:35.820 に答える