私はcodedUIを初めて使用し、最初にベストプラクティスとは何かについて多くのことを読んでいます。複雑なアプリケーションを使用している場合は、複数の UImap を使用することをお勧めします。現時点では利点はわかりませんが、2 つの UImap を使用して小さなプロジェクトを作成しました。
最初の初期セットアップ (初期 UImap と CodedUITest1 を使用) では、テスト ビルダーを使用するか、既存のアクション レコーディングを使用してコードを生成するかを選択できます。私が何をしても、最初のUImapに「行きます」。新しい UI を作成すると、テスト ビルダーが開始され、いくつかのアクションを記録できます。それを保存すると、私の場合は AdvanceSettings と呼ばれる新しく作成された UImap に追加されます。しかし、既存の記録からコードを生成することはできません。何故ですか?記録のある手動テスト ケースに基づいて、自動テスト ケースを作成したいと考えています。
以下は私のコードです。両方の UImap に CodedUITest1 クラスを使用しています。すべての UImap に新しいクラスを使用する必要がありますか?
コードに関するコメントがある場合は、いくつか書いてください。
私の考えでは。複雑なアプリケーションの場合は、複数の UImap が使用されるため、何かをより簡単に変更できます。すべての GUI 要素には 1 つの UImap があるため、その GUI で何かが変更された場合は、その UImap のみを編集します。ただし、UImap が 1 つあり、適切な名前を付ければ、特定のメソッドを簡単に置き換えたり、再記録したりすることもできます。そのため、複数の UImap を含む全体像がありません。
using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;
using System.Windows.Input;
using System.Windows.Forms;
using System.Drawing;
using Microsoft.VisualStudio.TestTools.UITesting;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Microsoft.VisualStudio.TestTools.UITest.Extension;
using Keyboard = Microsoft.VisualStudio.TestTools.UITesting.Keyboard;
using EAEP.AdvanceSettingsClasses;
namespace EAEP
{
/// <summary>
/// Summary description for CodedUITest1
/// </summary>
[CodedUITest]
public class CodedUITest1
{
public CodedUITest1()
{
}
[TestInitialize]
public void InitializationForTest()
{
this.UIMap.AppLaunch();
}
[TestMethod]
public void MainGUIMethod()
{
// 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.AssertMethod1();
this.UIMap.RestoreDefaults();
this.UIMap.AssertMethod1();
}
[TestMethod]
public void AdvanceSettignsWindowMethod()
{
AdvanceSettings advanceSettings = new AdvanceSettings();
advanceSettings.MoreSettingsReopenedAfterCancel();
this.UIMap.AssertVerificationAfterCancel();
advanceSettings.MoreSettingsReopenedAfterOK();
this.UIMap.AssertVerificationAfterOK();
}
#region Additional test attributes
// You can use the following additional attributes as you write your tests:
////Use TestInitialize to run code before running each test
//[TestInitialize()]
//public void MyTestInitialize()
//{
// // 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
//}
////Use TestCleanup to run code after each test has run
//[TestCleanup()]
//public void MyTestCleanup()
//{
// // 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
//}
#endregion
public TestContext TestContext
{
get
{
return testContextInstance;
}
set
{
testContextInstance = value;
}
}
private TestContext testContextInstance;
public UIMap UIMap
{
get
{
if ((this.map == null))
{
this.map = new UIMap();
}
return this.map;
}
}
private UIMap map;
}
}