15

CI ビルドに TeamCity を使用しています。Windows XP および Windows 7 仮想マシンで自動化された UI テストを実行するための 2 つ目のビルドをセットアップしたいと考えています。

ビルドは次のように機能すると思います。

  1. コンパイル、単体テストの実行など
  2. WiX を使用して MSI を準備する
  3. MSI をターゲット テスト マシンにコピーする
  4. MSI をリモートで実行する
  5. テスト ハーネス コードをリモート マシンにコピーする
  6. テストを実行する
  7. ビルド仕上げ

自動化された UI テストは NUnit を使用して記述されており、テスト仮想マシンで直接実行する必要があります (リモートで実行することはできません)。テストが失敗した場合、それが TeamCity ビルド ログに表示され、ビルドが失敗することが重要です。どちらのテスト仮想マシンにも VS または TeamCity ビルド エージェントをインストールしたくありません。

これのほとんどはpsexec.exeを使用して可能であるようです。検討すべき代替ツール (できればオープン ソース) はありますか?

4

2 に答える 2

7

深呼吸する

自動化された UI テストを支援するものを探していました。ranorex を使用して UI をテストし、TeamCity/Msbuild を使用してテストを実行します。

私たちを助けるツールは見つかりませんでした (私は常にいくつかのツールを監視しているので、このスレッドを監視します)、代わりに私たちが行ったことを次に示します。

  1. CI サーバーは、セットアップ ファイルとテスト スクリプトをテスト ホスト サーバーにコピーします。
  2. 次に、CI サーバーは、起動する VM の名前を指定して、テスト ホスト サーバーでカスタム アプリを起動します。
  3. 次に、テスト ホスト サーバーは を使用して VM ソフトウェアを起動し、Virtual PC.exe -singlepc -pc vhdname.vhd -launchシャットダウンするのを待ちます (テストの実行後)。
  4. VM は、ネットワークの場所からセットアップ ファイルとスクリプトを取得して実行します。
  5. テストが実行された後、ネットワーク上の場所に結果を返し、シャットダウンします。
  6. 制御がカスタム アプリに返されます。
  7. 制御が CI サーバーに返され、CI サーバーは結果から合格か不合格かを判断します (そして開発者が結果を認識できるように UI を更新します)。
  8. 結果は TeamCity のアーティファクトとして収集され、Svn でタグ付けされます。

それがすべてだと思います。複雑ですが、機能します。その誰かがあなたを助けてくれることを願っています。

于 2010-08-27T13:32:20.697 に答える
2

Gallioチームの Jeff Brown は、この種の要件をサポートするために作成することを計画しているArchimedesというツールについて話しています。有望に聞こえますが、これまでのところあまり進歩していないと思います。

それまでの間、Gallio プロジェクトには、 VM Toolと呼ばれる何かがあり、あなたが望むことをするかもしれません。仮想マシンを停止、開始、およびスナップショットするためのコマンドを提供し、さらに重要なこととして、ファイルを前後にコピーしてコマンドを実行するためのコマンドを提供します。

Powershell Remotingも検討したと思いますか?

于 2010-08-26T12:01:57.237 に答える