2

Web サイトに対していくつかのアクションを実行する 2010 コード化された UI テストがあります。メソッド全体をレコードごとに 1 回ループする「テスト メソッド」にデータソースを追加できます。

しかし、私が本当にやりたいことは、UIMap に記録された単一のメソッドであるテストの一部だけをループすることです。

テストメソッドが次のようになっているとしましょう:

//[DataSource("Microsoft.VisualStudio.TestTools.DataSource.XML", "|DataDirectory|\\TestCommunities.xml", "Community", DataAccessMethod.Sequential), DeploymentItem("Tests\\WebTests\\DataSources\\TestCommunities.xml"), TestMethod]        
public void LoginCreateCommunities()
    {
        this.UIMap.LoginAdmin();
        //this.UIMap.CreateCommunityParams.UIItem0EditText = TestContext.DataRow["CommunityName"].ToString();
        this.UIMap.CreateCommunity();
        this.UIMap.LogoffClose();
    }

データソースをループしたいのは UIMap.CreateCommunity() だけです。データソースのレコードごとに 3 つのメソッドすべてを実行する必要はありません。これは、データソースをテスト メソッド (上でコメントアウトした部分) にアタッチしたときに発生します。

私がここでやろうとしていることを達成する方法はありますか?

ありがとう。

4

2 に答える 2

0

まず、codedUI クラスで新しい UIMap を定義する必要があります

[CodedUITest]
public class CodedUITest1
{
    static private UIMap sharedTest = new UIMap();

    ....

    [ClassInitialize()]
    static public void ClassInit(TestContext context)
    {
        Playback.Initialize();
        try
        {
            sharedTest.RecordedStartApp();
        }
        finally
        {
            Playback.Cleanup();
        } 
    }

    [ClassCleanup()]
    static public void ClassCleanup()
    {
        Playback.Initialize();
        try
        {
            sharedTest.RecordedCloseApp();
        }
        finally
        {
            Playback.Cleanup();
        } 
    }
}
于 2012-04-05T07:45:05.093 に答える
0

ClassInitialize および ClassCleanup メソッドを使用する必要があります。下部の #region 追加テスト属性エリアに配置します。したがって、次のようになります。

    #region Additional test attributes

    [ClassInitialize]
    static public void ClassInit(TestContext context)
    {
        Playback.Initialize();
        try
        {
            sharedTest.LoginAdmin();
        }
        finally
        {
            Playback.Cleanup();
        }

    }


    [ClassCleanup]
    static public void ClassCleanup()
    {
        Playback.Initialize();
        try
        {
            sharedTest.LogoffClose();
        }
        finally
        {
            Playback.Cleanup();
        }
    }

    #endregion
于 2011-02-11T18:48:27.147 に答える