Как добавить источник данных в метод UIMap вместо метода тестирования (кодированный тест пользовательского интерфейса VS 2010)

У меня есть закодированный тест пользовательского интерфейса 2010 года, который выполняет некоторые действия с веб-сайтом. Я могу добавить источник данных в «Метод тестирования», который зацикливает весь метод один раз для каждой записи.

Но что я действительно хочу сделать, так это зациклить только часть теста, которая представляет собой всего лишь один записанный метод в 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 метода выполнялись для каждой записи в источнике данных, что происходит, когда я присоединяю источник данных к тестовому методу (часть, закомментированная выше).

Есть ли способ добиться того, что я пытаюсь сделать здесь?

Спасибо.


person Jeff    schedule 25.11.2010    source источник
comment
Позвольте мне посмотреть, я спрошу это по-другому... без ручного кодирования всего (я хотел бы использовать часть встроенной магии CUIT), могу ли я зациклить только часть ‹u›part‹/u › метода тестирования закодированного пользовательского интерфейса через источник данных (а не всего метода закодированного тестирования).   -  person Jeff    schedule 27.11.2010


Ответы (2)


Вы должны использовать методы 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
person kgodoy    schedule 11.02.2011
comment
Не могли бы вы объяснить, что делают Playback.Initialize() и Playback.Cleanup()? Должен ли вызов Initialize быть обусловлен свойством IsInitialized? Почему Playback.Cleanup() вызывается сразу после выполнения действия, а не в самом конце набора тестов? - person Hamish Grubijan; 01.03.2011
comment
что такое общий тест здесь? - person atiyar; 30.03.2011
comment
Это старый ответ, но Playback.Initialize() и Playback.Cleanup() запускаются до и после самого теста. «SharedTest» в данном случае — это еще один тестовый метод, который я вызываю. Прошло пару лет с тех пор, как я написал свой ответ, и с тех пор перешел на использование Selenium WebDriver (C#) вместо Visual Studio 2012, что для меня работает намного лучше. Извините, если это не поможет. - person kgodoy; 08.05.2013

сначала вам нужно определить новый UIMap в вашем классе codedUI

[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();
        } 
    }
}
person hagem    schedule 05.04.2012