2009-05-05 6 views
9

UIオートメーションとNunitを使用して、WPFアプリケーションのテストUIテストを作成します。 ローカルマシンから実行したときに正常に動作するテストを作成しました。これらのテストは、TeamCityを使用してビルドサーバー上で正常に実行されることはありません。アプリケーションウィンドウを開いた後、ビルドは常にハングします。しかし、私が(リモートデスクトップに)ログインしている場合、ビルドサーバーでは、すべてのUIオートメーションテストも正常に実行されます。 私はそれがおそらくアクティブなWindowsセッションの実行と関係があると推測しています。どのように私たちのビルドサーバーをアクティブなWindowsセッションまたはこれらのテストをビルドサーバー上で実行するための他のソリューションを作成するように納得させるためのアイデア?ビルドサーバーでのUI自動化テストの実行

答えて

3

多くのオプションがありません。私が最初に私が知っている2、最も好ましい選択肢の一覧が表示されます:

  • がビルドサーバー上の仮想マシンを設定します。ビルドは仮想マシンで実行されます。物事を安全に保つために、ホスト(別名ビルドサーバー)をロックすることができます。
  • 常に誰かにログオンしてください。このオフコースはセキュリティ上の問題を引き起こします。マウス、キーボード、スクリーンを外し、RDPなどの方法でbuildserverにアクセスするだけで、この問題を少し緩和することができます。

編集

このTestComplete FAQ項目を見てみましょう:缶のTestCompleteをコンピュータがロックされている時にスクリプトを実行しますか?

+1

ビルドサーバー上の仮想マシン内のすべてのビルドを実行します。すべてのテストはローカルアカウント(システムではなく)で実行されます。それは問題を解決しませんでした。 誰かを常時ログインさせておくことは選択肢ではありません。私が言ったように、このビルドが実行できる3台の仮想マシンがあります。したがって、ビルドするたびに、利用可能な最も速いVMを選択します。 vmのローカルユーザーは通常ログインしていますが、ロックされていないことを確認することはできません。そして、私たちは本当にこのプロセスを可能な限り自動化したいので、手動ログインは最も魅力的ではありません。 – andreja

+0

@andreja、私はTestcompleteのQ&Aへのリンクで返信を更新しました。私はこれの周りに他の方法があるとは思わない。あなたは誰かをログオンしておく必要があります。あなたのVMが「ロック解除され」、ホストが「ロックされている」(しかし、私はシステム管理者ではない)ときに、これがセキュリティ上の問題を引き起こす場所はわかりません。 –

+0

@andreja:ログインを自動化したい場合は、いくつかのレジストリキー値を設定することができ、ビルドVMが起動した後にビルドユーザがログインします。あなたが望むなら、私はreg鍵を調べることができます。 –

1

いいえ、私はここで推測しています。

システムアカウントではなくローカルビルドサーバーユーザーでTeamCityサービスを試して実行してください。 新しいビルドを開始する前に、そのアカウントで一度ログインする必要があるかもしれません。

+0

すでに試しました。私がリモートデスクトップにログインしていると言ったとき、私たちのビルドサーバーで、すべてのUIオートメーションテストも正常に実行されます。そのユーザーとしてログインしており、すべてのテストはそのユーザーの下で実行されています。問題は、このユーザーがロックされているときに2番目のテストが失敗したことです。ローカルマシンで実行して実行中にコンピュータをロックすると、それらも失敗しました。 – andreja

1

サービスとは対照的に、インタラクティブセッションでテストを実行する必要があるようです。 「サービスがデスクトップとやりとりするのを許可する」を追加すると助けになるかもしれませんが、これはもうVistaではサポートされていません。

ビルドinteractivleyをコマンドラインとして実行できるのであれば、動作するはずのサービスではありません。

Visual Studio 2008のロードエージェントを使用してUIAutomationテストを実行し、VM上でコマンドラインツールとして問題なく実行していました。

また、毎日のビルドの一部であるビルドサーバーでUIテストを実行するべきではないと私は同意します。

+1

ありがとうございますが、VistaやWindows Server 2008では、サービスはユーザーのデスクトップと対話できなくなりました。Windowsサーバー2008を使用します。 コンソールユーザーとして実行するとデスクトップもロックされ、ビルドに失敗します。 – andreja

0

アプリケーションウィンドウを開いた後も常にビルドがハングします。

UIをインスタンス化するテストはありますか?それはうまくいくわけではありません。モーダルダイアログが表示されたら、ビルドがハングします。 MVPパターンが発明された理由は、アクティブなプレゼンテーションコードを具体的なビューから切り離すためです。

自動テストでモックビューを使用していますか?

+0

私はうまく動作しませんで信じていません:)私たちはモックビューを使用していません。 – andreja

+1

テスト可能なUIコードを設計することは、多くの問題を解決しますが、テストが有意義なインタラクティブな環境を必要とするものだけをテストするシナリオがあります。 (必ずしも単体テストではありませんが、統合テストも自動化したいのですが) –

+0

ボタンをクリックすると適切なダイアログが開くことをテストしたいことがあります。 (つまり、UIをテストする必要があります)。 – BrainSlugs83

関連する問題