2

我有一个 2010 Coded UI 测试,它对网站执行一些操作。我可以将数据源添加到“测试方法”中,该方法每条记录循环整个方法一次。

但是,我真正想做的只是循环测试的一部分,这只是 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

您必须使用 ClassInitialize 和 ClassCleanup 方法。你把它放在 底部的#region Additional test attributes区域。所以对你来说,它看起来像:

    #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 回答
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 回答