3

iOSの自動ビルド/テストフローの設定に取り組んでいます。私が使用したいくつかのツールは、

  • Bamboo CI (Jenkins など)
  • ひょうたん
  • チェックアウト/ビルド/テスト フローをラップする自作の bash
  • テストを実行するための唯一のシミュレーター、今のところ実際のデバイスはありません
  • 自動ビルド/テスト専用の Mac mini

高度なテスト ケースを並行して実行するには、複数のシミュレータを同時に実行する必要があります。このツールを使用して複数のシミュレーターを有効にしました (デフォルトでは、iOS シミュレーターは複数のインスタンスを許可しません)。今では、異なるユーザーの異なる VNC コンソールで自分の Mac mini に対してそれらを実行できます。

次に、Calabash iOS フレームワークが外部接続 (cucumber クライアント ライブラリ) のポート (37265) をハードコーディングしているように見えるという別の問題に遭遇しました。そのため、別のシミュレーター インスタンスが同じポート 127.0.0.1 で競合するため、まだ並行 Calabash テストを実行できません。 37265。

ただし、calabash-cucumber では、接続するテスト デバイス (またはシミュレーター) の ip:port を指定できます。別の ip をリッスンするシミュレーターを事前に作成し、アプリを明示的にロードして、cucumber に指定された ip:port に接続するように指示できれば、並行テストのアイデアはまだ機能しています。しかし、どうやら iOS シミュレーターは 127.0.0.1 インターフェイスをリッスンするようにハード コードされているようですね。指定されたネットワーク インターフェイスに自分自身をブリッジするようにシミュレーターに指示する方法はありますか? 可能であれば、複数のテスト ユーザーと複数のネットワーク インターフェイスをセットアップするだけで、iOS エミュレーターでの並列テストが可能になります。

ただし、間違った方法で行っている場合もお知らせください。ありがとう。

4

1 に答える 1

0

次のトリプルをアプリの Info.plist に追加することで、Calabash ポートをアプリごとに変更できるようになりました。

CalabashServerPort NSNumber < port number >

インストルメント プロセスに対する Apple の制限は引き続き適用されます。アクティブなインスツルメント プロセスは 1 つだけです。さらに、Instruments.app が開いている場合、instruments コマンド ライン ツールは機能しません。

他の投稿では VM の使用を推奨していますが、私はこれについて経験がありません。

于 2015-05-29T12:06:51.117 に答える