Whiteを使用して、C# WPF UI の BDD テストを自動化しています。
私の最初のいくつかのテストは、私の開発マシン (Windows 7 を実行) でうまく機能しています。ただし、ビルド サーバー (Windows Server 2003 R2 を実行している仮想マシン) で同じコードを実行しようとすると、正しく動作しません。どちらの場合も、テストはコマンド ラインから実行され、テストは Cuke4Nuke フレームワークを使用しています。サーバーの場合、リモート デスクトップ接続経由でサーバーにアクセスしています。
コードは次のようになります。
var application = Application.Launch("whiteApp.exe");
var initializeOption = InitializeOption.NoCache;
var windowCriteria = SearchCriteria.ByText("whiteApp");
var window = application.GetWindow(criteria, initializeOption);
var criteria = SearchCriteria.ByAutomationId("rightButton");
var button = (Button) window.Get(criteria);
button.click();
問題は、ボタン クリック イベントがサーバー上で実行されたときに発生しないことです。White の実行が終了した後も UI を開いたままにしておくと、(マウスを使用して) ボタンをクリックできます。興味深い点の 1 つは、クリック メソッドが実行された後、下の図のようにボタンがクリックされた形跡が表示されることです。他のボタンの場合、マウス オーバー効果が表示されます。