1

Java、Maven、Appium、キュウリ

プロジェクト構造 - パッケージ:

  • アンドロイド
  • iOS
  • 特徴

テスト ケースは、パッケージの機能- キュウリを使用します。

テストの実行:

  • jar ファイルをビルドする
  • Intellij IDEA を通じて

現在、機能 (Cucumber のテスト ケース) はタグ @ios-simulator を使用しています。このタグにより、Cucumber は @Before(value="@ios-simulator") を持つクラスを見つけます - iOS のみのテストを実行します。機能のすべてのタグを @android に変更すると、Android でテストが実行されます。

問題:テストを実行するためのプラットフォームを選択する ->フィーチャー内のすべてのテスト ケースのすべてのタグを変更する- 不快でありふれた作業です。

目標:プラットフォーム名は、pom.xml ファイルなどの 1 つの場所に格納する必要があります。Cucumber またはその他の何かがこの値を取得し、選択したプラットフォームのテストを実行します (適切なパッケージを選択することにより)。またはコマンドで: mvn test -Dandroid - maven が使用されている場合。

Cucumber は、実行中のテストに対する応答です。しかし、プラットフォームをより快適に選択する方法はわかりません。機能でタグを動的に生成する (pom.xml ファイルから platform-name-value を取得する) が機能しません。

MavenまたはCucumberでこのタスクを行う方法は? 何か案は

4

1 に答える 1

1

このようなテスト設定に何かを追加することをお勧めします

device = System.getProperty("device");

これにより、「iPhone Simulator」または「Android」を介してテストを実行する場所を指定できるようになります。

コマンドラインから、次のようなことをします

mvn -Ddevice="Android" test

これで、実行するデバイスのタイプがわかったので、テストするプラットフォームを設定できます。そこから、テストにはおそらく要素を選択または操作する何らかのグローバルな方法が必要であり、使用するバージョンを決定できます。

アプリが本当にハイブリッド アプリである場合、これで問題ないはずです。それ以外の場合は、プラットフォームのパッケージに個別のテストを保持します。

私はjunitを使用しており、テストのパッケージ名をチェックして、他の構成を自動的に行います。

if (this.getClass().getPackage().toString().contains("ios")) {
    platform = iOS;
}
于 2014-04-10T16:06:35.377 に答える