コード化された UI テストでテストしているプログラムで、ウィンドウが 1 秒ほどしか開かないので、このウィンドウが開いていることを確認したいと思います。
テストがそのウィンドウを見つけられるように、プログラムをフリーズする方法、または実行速度を遅くする方法はありますか?
コード化された UI テストでテストしているプログラムで、ウィンドウが 1 秒ほどしか開かないので、このウィンドウが開いていることを確認したいと思います。
テストがそのウィンドウを見つけられるように、プログラムをフリーズする方法、または実行速度を遅くする方法はありますか?
CodedUi Test
コメントで既に述べたように、この機能はアプリケーションに組み込まれているため、ウィンドウをキャッチするためにできることはあまりありません (おそらく何もありません) 。
私の提案は、このプロパティを構成可能にすることです。テスト対象のアプリケーションの一部のプロパティは、テストできるように構成可能にする必要があります。次の要件を考慮してください。
それらをどのようにテストしますか?1か月または1年待つつもりですか?この種のパラメーターは、Qa チームが使用できる必要があります。そうしないと、テストできません。このアプローチでは、アプリのコードとビルドを変更する必要があることはわかっていますが、それを解決する唯一の方法だと思います。
Thread.Sleep(100); を追加するのはどうですか?
Thread.Sleep(2000) の代わりに Playback.Wait(2000) を使用します。
私の理解では、最善のアプローチは、タスクをできるだけ小さく分割することです。したがって、私が行った UI テストでは、ツールバーのショートカットを開き、その中のポップアップでログインをクリックし、アプリケーションのタブをクリックすると、コードは次のようになります。
namespace CodedUITestProject1
{
/// <summary>
/// Summary description for CodedUITest1
/// </summary>
[CodedUITest]
public class CodedUITest1
{
public CodedUITest1()
{
}
[TestMethod]
public void CodedUITestMethod1()
{
// To generate code for this test, select "Generate Code for Coded UI Test" from the shortcut menu and select one of the menu items.
// For more information on generated code, see http://go.microsoft.com/fwlink/?LinkId=179463
this.UIMap.OpenWindow();
this.UIMap.ClickLogin();
this.UIMap.ClickDevelopment();
}
//snip
}
したがって、ClickDevelopment() メソッドでは、プログラムが表示される必要があることがわかっているので、メソッド アクションに直接飛び込むのではなく、Thread.Sleep() をスローして、プログラムをもう少し長く表示することができます。
public void ClickDevelopment()
{
Thread.Sleep(10000);
#region Variable Declarations
WinClient uIDevelopmentClient = this.UIQualityTrack30Window.UIItemWindow.UIQualityTrack30Client.UIDevelopmentClient;
#endregion
// Click 'Development' client
Mouse.Click(uIDevelopmentClient, new Point(39, 52));
}