ビルドサーバーでのUI自動化テストの実行
-
05-07-2019 - |
質問
UI AutomationとNunitを使用して、WPFアプリケーションのテストUIテストを作成します。 ローカルマシンから実行するときに正常に動作するテストを作成しました。これらのテストは、ビルドサーバーで(TeamCityを使用して)正常に実行されることはありません。アプリケーションウィンドウを開いた後、ビルドが常にハングします。ただし、ログインしている場合(リモートデスクトップ)、ビルドサーバーではすべてのUIオートメーションテストも正常に実行されます。 だから、おそらくアクティブなWindowsセッションの実行と関係があるのではないかと推測しています。アクティブなWindowsセッションを作成するようビルドサーバーを説得する方法や、ビルドサーバーでこれらのテストを実行するための他のソリューションはありますか?
解決
多くのオプションはありません。私が知っている2つをリストします。最も好ましいオプションを最初に:
- ビルドサーバーで仮想マシンをセットアップします。ビルドは仮想マシンで実行されます。ホスト(別名ビルドサーバー)をロックして、物事を安全に保つことができます。
- 常に誰かにログオンしてください。このオフコースはセキュリティの問題を引き起こします。マウス、キーボード、および画面を削除し、RDPまたは同様のものを介してのみbuildserverにアクセスすることで、この問題を少し軽減できます。
編集
この TestComplete FAQ 項目をご覧ください: TestCompleteはスクリプトを実行できますコンピューターがロックされている場合
他のヒント
OK、ここで推測しているところです。
システムアカウントではなくローカルビルドサーバーユーザーでTeamCityサービスを試して実行します。 新しいビルドを開始する前に、そのアカウントで一度ログインする必要があるかもしれません。
definatleyは、サービスではなくインタラクティブセッションでテストを実行する必要があるようです。 「デスクトップと対話するサービスを許可する」を追加する役立つかもしれませんが、これはVistaではもはやサポートされていません。
ビルドinteractivleyをコマンドラインとして実行できれば、機能するはずのサービスではありません。
以前は、ビジュアルスタッド2008ロードエージェントを使用してUIAutomationテストを実行し、それらを分散し、VMでコマンドラインツールとして問題なく実行していました。
また、日常のビルドの一部であるビルドサーバーでUIテストを実行すべきではないことに同意します。
アプリケーションウィンドウを開いた後、ビルドが常にハングします。
UIをインスタンス化するテスト?それはうまくいきません、例えばモーダルダイアログを取得すると、ビルドがハングします。これが、アクティブなプレゼンテーションコードを具体的なビューから分離するためにMVPパターンが考案された理由です。
自動テストで模擬ビューを使用していますか?