Unity 6.3
0 онлайн 95 гостей 3 в системе
Вход
Программирование в Unity Шаг 165 из 210

Укажите тесты для запуска

Чтобы запустить тесты из кода, вызовите Execute на TestRunnerApi и укажите, какие тесты запускать с Фильтром.

Следующий пример запускает все тесты режима воспроизведения в проекте:

var testRunnerApi = ScriptableObject.CreateInstance<TestRunnerApi>();
var filter = new Filter()
{
    testMode = TestMode.PlayMode
};
testRunnerApi.Execute(new ExecutionSettings(filter));

Несколько значений фильтра

Вы можете определить дополнительные поля на Filter класс, чтобы создать более конкретный фильтр.

Многие поля допускают несколько значений. Когда вы определяете несколько значений для поля, тестовый запуск выполняет любые тесты, которые соответствуют хотя бы одному из значений.

В следующем примере запускаются тесты с полными именами, соответствующими одному из двух указанных имен:

var api = ScriptableObject.CreateInstance<TestRunnerApi>();
api.Execute(new ExecutionSettings(new Filter()
{
    testNames = new[] {"MyTestClass.NameOfMyTest", "SpecificTestFixture.NameOfAnotherTest"}
}));

Несколько полей фильтра

Если в фильтре определено несколько полей, запуск выполняется только для тестов, соответствующих всем полем.

В этом примере запускается любой тест в указанной сборке с именем, соответствующим одному из двух указанных имен теста.

var api = ScriptableObject.CreateInstance<TestRunnerApi>();
api.Execute(new ExecutionSettings(new Filter()
{
    assemblyNames = new [] {"MyTestAssembly"},
    testNames = new [] {"MyTestClass.NameOfMyTest", "MyTestClass.AnotherNameOfATest"}
}));

Несколько конструкторов фильтров

Настройки выполнения принимают один или несколько фильтров в своем конструкторе. Если фильтр не указан, то по умолчанию запускаются все тесты режима редактирования. Если указано несколько фильтров, то тест запускается, если он соответствует любому из фильтров.

Следующая команда запускает все тесты в сборке с именем MyTestAssembly, любые тесты с именем, соответствующим одному из двух указанных имен тестов:

var api = ScriptableObject.CreateInstance<TestRunnerApi>();
api.Execute(new ExecutionSettings(
    new Filter()
    {
        assemblyNames = new[] {"MyTestAssembly"},
    },
    new Filter()
    {
        testNames = new[] {"MyTestClass.NameOfMyTest", "MyTestClass.AnotherNameOfATest"}
    }
));

Примечание: Указание различных режимов тестирования или платформ в каждом Filter в настоящее время не поддерживается. Режим тестирования и платформа из первого Filter только и по умолчанию на Режим редактирования, если не предоставлены.

Дополнительные ресурсы