0

別のサード パーティ インストール ウィザード アプリ InstallAnywhere を使用してアプリケーションをインストールする app.exe があります。これはテキストベースのウィザードです。つまり、親シェルで app.exe -i console が実行されると、新しいシェルが生成されます (そして、ウィザードの手順を実行するために、子プロセスが java.exe を実行します)。

この場合、一種の質問/回答のやり取りとして pexpect を使用できますか? Hudson で試してみましたが、Hudson は親プロセスのみを監視でき、子プロセスは監視できないようです。Hudson ジョブが Python スクリプトを開始すると、開始しますが、ウィザードのステップ 1 で開始に失敗し、ハングします。

どうすればこれを克服できますか?

ありがとう

4

1 に答える 1

0

私がこれを正しく読んでいれば、おそらく自動化されたテストを行うために、Hudson ジョブ中に実行中のインストーラー (この場合は pexpect を使用) と対話する必要があります。

Hudson から実行されるシェル スクリプト (またはバッチ ファイル) から expect を呼び出すと、expect が目的の場所に到達する可能性があると考えています。スクリプトは、お気に入りのexpectを使用してテストを実行し、その間、正常に終了するか失敗します。Hudson が障害を検出し、それに応じて対応することができます。スクリプトと予期されるメッセージは標準出力に書き込まれ、Hudson はそれをビルド ログに収集します。

ただし、Flexeraには、JUnit を介してインストーラーをテストできるテスト フレームワークがあります。このページの一番下を見てください。またはJavaDocsをチェックしてください。

これにより、予想されるハックよりも精度が向上する可能性があります。Hudson プラグインを作成して、expect スクリプトと shell スクリプトを完全に処理できる場合もあります。

更新: Javadocs を調べたところ、メイン クラスGUIAutomationFixtureが Java のRobotクラスを使用していることがわかりました。これはおそらく、このクラスをヘッドレス サーバーで実行できないことを意味します。おそらく、Windows か、動作する X システムを備えた Linux/Unix ボックスのいずれかが必要になるでしょう。

于 2013-05-29T02:47:12.427 に答える