UWP Unit Test для выхода и перезапуска приложения - PullRequest
0 голосов
/ 30 августа 2018

Я хотел бы написать несколько юнит-тестов, которые имитируют следующее:

1.) User starts my app
2.) User quits my app (unexpectantly during some operation)
3.) User restarts my app
4.) Unit test then checks to see that my code recovered from this.

Имея настройку модульных тестов UWP с помощью этих инструкций , я вижу, что проект модульного теста создает тестовое приложение UWP, подобное этому, в файле UnitTestApp.xaml.cs:

        Microsoft.VisualStudio.TestPlatform.TestExecutor.UnitTestClient.CreateDefaultUI();

        // Ensure the current window is active
        Window.Current.Activate();

        Microsoft.VisualStudio.TestPlatform.TestExecutor.UnitTestClient.Run(e.Arguments);

В идеале, я хотел бы как-то убить / выйти / прервать это окно (или его кадр, или ??) в рамках одного модульного теста, а затем перезапустить его и выполнить этот модульный тест, а последующие модульные тесты продолжатся.

Если это невозможно, то я просто хотел бы знать, как другие создают модульные тесты, которые обрабатывают выход и перезапуск своего приложения.

Я бы предпочел ответ для Visual Studio 2015, но инструкции для Visual Studio 2017 также были бы полезны.

1 Ответ

0 голосов
/ 22 июня 2019

Можно запускать и контролировать приложение из тестового примера, как winui , UAPApp.Launch поможет вам запустить приложение. Я не видел публичного документа о UAPApp.Launch, подпись можно найти в Microsoft.Windows.Apps.Test.chm

Например, для тестов навигации тесты TestEnvironment сделали волшебство:

 public static void ClassInitialize(TestContext testContext)
    {
        TestEnvironment.Initialize(testContext);
    }

Если вы глубоко погрузитесь в функции TestEnviroment , CreateApplication, создающие новое приложение, и, наконец, в Application.cs, testapp запускается с помощью:

return UAPApp.Launch(_appName, topLevelWindowCondition);
...