Как открыть браузер и держать его открытым между закодированными тестами пользовательского интерфейса в Visual Studio 2017 с помощью C # - PullRequest
0 голосов
/ 08 июня 2018

Я пытаюсь сделать несколько кодированных тестов пользовательского интерфейса, чтобы помочь автоматизировать некоторые ручные тесты в компании, в которой я работаю.Я довольно новичок в части CUIT визуальной студии, но мне кажется, что я это выяснил.Однако у меня возникла проблема с закрытием потока тестирования до запуска других тестов.

Итак, я хочу сделать это тестирование полностью автоматизированным, так как все, что нужно сделать разработчику, это нажать «Выполнить все», и все они будут запускаться автоматически.Проблема, с которой я столкнулся, заключается в том, что для самого первого теста необходимо запустить Internet Explorer, перейти на веб-сайт и войти на веб-сайт.Остальные тесты основаны на регистрации в системе.Однако после первого теста браузер закрывается и уничтожается вместе с первым методом тестирования.

Любой совет по этому поводу был бы великолепен, я искал в Интернете некоторые ответы, но многие из них относятся к очень старым версиям Visual Studio, а те, которые я пробовал, не работают.

Спасибо.

Редактировать: Итак, внутри каждого класса, скажем, «CodedUITest1.cs», я могу использовать один и тот же браузер в каждом из [Test Method], которые есть в этом классе (как кто-то предложил ниже).Проблема, с которой я столкнулся, заключается в том, что если я хочу, чтобы другой класс тестирования тестировал разные функции, "CodedUITest2.cs", браузер закроется, когда первый класс завершит свои тесты.

1 Ответ

0 голосов
/ 08 июня 2018

Если я правильно понимаю ваш вопрос, то этот сегмент кода должен работать для вас:

BrowserWindow window;

    [TestMethod]
    public void Method1()
    {
        window = BrowserWindow.Launch(new Uri("http://www.bing.com"));
        window.CloseOnPlaybackCleanup = false;
    }

    [TestMethod]
    public void Method2()
    {
        window = BrowserWindow.Locate("Bing");
        window.CloseOnPlaybackCleanup = false;
    }

    [TestMethod]
    public void Method3()
    {
        window = BrowserWindow.Locate("Bing");
    }

После прочтения новой информации по этому вопросу я протестировал коднемного.Если вы хотите оставить браузер открытым между CodeUITes1.cs и CodedUITest2.cs, вам может помочь следующий фрагмент кода.Он принят по следующей ссылке: https://blogs.msdn.microsoft.com/devops/2012/11/08/coded-ui-test-why-does-application-close-after-each-test-in-visual-studio-2012/

Файл: CodedUITest1.cs

public class CodedUITest1
    {
        static BrowserWindow browserWindowInstance = null;
        public void LoadLocalHost()
        {
            if (browserWindowInstance == null)
            {
                browserWindowInstance = BrowserWindow.Launch(new System.Uri("YourWebSiteAddress"));

            browserWindowInstance.CloseOnPlaybackCleanup = false;
            browserWindowInstance.Maximized = !browserWindowInstance.Maximized;
        }
        else
        {
            browserWindowInstance.Maximized = !browserWindowInstance.Maximized;
        }
    }

[TestMethod]
    public void CodedUITestMethod1()
    {
        LoadLocalHost();
        // To generate code for this test, select "Generate Code for Coded UI Test" from the shortcut menu and select one of the menu items.
        this.UIMap.ClickNewsAndEvents();
    }

Файл CodedUITest2.cs:

 [TestMethod]
    public void CodedUITestMethod2()
    {
        CodedUITest1 obj1 = new CodedUITest1();
        obj1.LoadLocalHost();
        // To generate code for this test, select "Generate Code for Coded UI Test" from the shortcut menu and select one of the menu items.
        this.UIMap.ClickNewsPage();

    }

Вы можете добавить еще CodedUITestклассы.Просто создайте новый объект, такой как obj1, в примере кода класса CodedUITest2 и используйте метод LoadLocalHost (), который находится в CodedUITest1.class из любых последующих классов.Надеясь, что это решит вашу проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...