UIオートメーションとNunitを使用して、WPFアプリケーションのテストUIテストを作成します。 ローカルマシンから実行したときに正常に動作するテストを作成しました。これらのテストは、TeamCityを使用してビルドサーバー上で正常に実行されることはありません。アプリケーションウィンドウを開いた後、ビルドは常にハングします。しかし、私が(リモートデスクトップに)ログインしている場合、ビルドサーバーでは、すべてのUIオートメーションテストも正常に実行されます。 私はそれがおそらくアクティブなWindowsセッションの実行と関係があると推測しています。どのように私たちのビルドサーバーをアクティブなWindowsセッションまたはこれらのテストをビルドサーバー上で実行するための他のソリューションを作成するように納得させるためのアイデア?ビルドサーバーでのUI自動化テストの実行
答えて
多くのオプションがありません。私が最初に私が知っている2、最も好ましい選択肢の一覧が表示されます:
- がビルドサーバー上の仮想マシンを設定します。ビルドは仮想マシンで実行されます。物事を安全に保つために、ホスト(別名ビルドサーバー)をロックすることができます。
- 常に誰かにログオンしてください。このオフコースはセキュリティ上の問題を引き起こします。マウス、キーボード、スクリーンを外し、RDPなどの方法でbuildserverにアクセスするだけで、この問題を少し緩和することができます。
編集
このTestComplete FAQ項目を見てみましょう:缶のTestCompleteをコンピュータがロックされている時にスクリプトを実行しますか?
いいえ、私はここで推測しています。
システムアカウントではなくローカルビルドサーバーユーザーでTeamCityサービスを試して実行してください。 新しいビルドを開始する前に、そのアカウントで一度ログインする必要があるかもしれません。
すでに試しました。私がリモートデスクトップにログインしていると言ったとき、私たちのビルドサーバーで、すべてのUIオートメーションテストも正常に実行されます。そのユーザーとしてログインしており、すべてのテストはそのユーザーの下で実行されています。問題は、このユーザーがロックされているときに2番目のテストが失敗したことです。ローカルマシンで実行して実行中にコンピュータをロックすると、それらも失敗しました。 – andreja
サービスとは対照的に、インタラクティブセッションでテストを実行する必要があるようです。 「サービスがデスクトップとやりとりするのを許可する」を追加すると助けになるかもしれませんが、これはもうVistaではサポートされていません。
ビルドinteractivleyをコマンドラインとして実行できるのであれば、動作するはずのサービスではありません。
Visual Studio 2008のロードエージェントを使用してUIAutomationテストを実行し、VM上でコマンドラインツールとして問題なく実行していました。
また、毎日のビルドの一部であるビルドサーバーでUIテストを実行するべきではないと私は同意します。
ありがとうございますが、VistaやWindows Server 2008では、サービスはユーザーのデスクトップと対話できなくなりました。Windowsサーバー2008を使用します。 コンソールユーザーとして実行するとデスクトップもロックされ、ビルドに失敗します。 – andreja
アプリケーションウィンドウを開いた後も常にビルドがハングします。
UIをインスタンス化するテストはありますか?それはうまくいくわけではありません。モーダルダイアログが表示されたら、ビルドがハングします。 MVPパターンが発明された理由は、アクティブなプレゼンテーションコードを具体的なビューから切り離すためです。
自動テストでモックビューを使用していますか?
私はうまく動作しませんで信じていません:)私たちはモックビューを使用していません。 – andreja
テスト可能なUIコードを設計することは、多くの問題を解決しますが、テストが有意義なインタラクティブな環境を必要とするものだけをテストするシナリオがあります。 (必ずしも単体テストではありませんが、統合テストも自動化したいのですが) –
ボタンをクリックすると適切なダイアログが開くことをテストしたいことがあります。 (つまり、UIをテストする必要があります)。 – BrainSlugs83
- 1. JDI UIテスト自動化フレームワーク単純なJavaの例プロジェクト - 実行するテスト
- 2. Flex UI自動化テストのメリット?
- 3. コード化されたUIテストTFSのビルドサーバー上のWindowsアプリケーション
- 4. EPiServerでの自動UIテスト
- 5. 実行の自動化アンドロイドバージョン7.0の実デバイスのテスト
- 6. iOS実デバイス上でTestNG自動化テストを実行中 - iPad
- 7. TFS 2008での自動テストの実行
- 8. コード化されたUIテストの自動化
- 9. NetSuiteでのテスト自動化
- 10. MacでのSilverLightの自動UIテスト
- 11. ポリマーウェブサイトのUI自動化フレームワーク
- 12. SonarQubeのテスト自動実行レポート
- 13. Jenkinsを使用してWindowsスレーブでTestStack.White UIテストを自動化
- 14. フラッシュゲームのテスト自動化ツール
- 15. Tizen TV:UIテストの自動化
- 16. RESTfulなテストの自動化
- 17. JenkinsのVeriFIXテスト自動化
- 18. Googleアナリティクスの自動化テスト
- 19. USSDアプリの自動化テスト
- 20. どのようにテストの実行を自動化するのですか
- 21. .Netテスト自動化
- 22. Jenkins Docker-SlaveでのUIテストの実行
- 23. Rスクリプトの実行の自動化
- 24. 自動UIテストの使い方は?
- 25. 自動UIテストで使用する模擬実装
- 26. 自動テスト生成とリアルタイムHIL実行?
- 27. Expression Encoder 4 SDKでのSeleniumテストの実行がビルドサーバーで失敗する
- 28. Microsoftテストマネージャーでコード化されたUIテストを実行
- 29. UIの自動化:文書の署名を自動化できますか?
- 30. VSTS Nugetフィードのビルドサーバーで資格情報の作成を自動化
ビルドサーバー上の仮想マシン内のすべてのビルドを実行します。すべてのテストはローカルアカウント(システムではなく)で実行されます。それは問題を解決しませんでした。 誰かを常時ログインさせておくことは選択肢ではありません。私が言ったように、このビルドが実行できる3台の仮想マシンがあります。したがって、ビルドするたびに、利用可能な最も速いVMを選択します。 vmのローカルユーザーは通常ログインしていますが、ロックされていないことを確認することはできません。そして、私たちは本当にこのプロセスを可能な限り自動化したいので、手動ログインは最も魅力的ではありません。 – andreja
@andreja、私はTestcompleteのQ&Aへのリンクで返信を更新しました。私はこれの周りに他の方法があるとは思わない。あなたは誰かをログオンしておく必要があります。あなたのVMが「ロック解除され」、ホストが「ロックされている」(しかし、私はシステム管理者ではない)ときに、これがセキュリティ上の問題を引き起こす場所はわかりません。 –
@andreja:ログインを自動化したい場合は、いくつかのレジストリキー値を設定することができ、ビルドVMが起動した後にビルドユーザがログインします。あなたが望むなら、私はreg鍵を調べることができます。 –