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

1. Запуск теста в проекте Unity

Цели обучения

В этом упражнении вы узнаете, как настроить простой проект Unity с тестовой сборкой и тестами. В нем также будет представлена структура модульных тестов, основанных на NUnit.

Введение и мотивация

В Unity, наш основной способ тестирования контента — это использование Unity Test Framework, который поставляется как пакет по умолчанию в Unity Editor. Знание того, как настроить базовый проект с тестами, поможет вам начать ваше путешествие.

2010 год

Импорт образец 1_RunningTest_Project в вашу Unity Editor (версия 2019.2 или более новых) от Package Manager окно.

Примечание: Проект содержит один .cs файл (MyMath.cs) — простая математическая реализация. Задача состоит в том, чтобы написать модульные тесты для этого класса.

Откройте Test Runner UI (Окно > Общие > TestRunner) и создать новую EditMode испытательной сборки наряду с MyExercise Подробные инструкции можно найти в Раздел «Начало». Создайте новый тест внутри новой папки сборки теста (имя по умолчанию Tests) либо от Испытательного Бегуна UI или щелкнув правой кнопкой мыши Project окно и выбор Создать > Тестирование > C# тестовый скрипт. Перед тем, как мы проведем тест, необходимо также связать нашу тестовую сборку с существующей сборкой кода. Нажмите на тестовую сборку, которую вы создали в Project окно, чтобы увидеть его в Inspector (Нажмите на папку Тесты > Тесты).

В Ссылках на определения сборки вы увидите, что UnityEngine.TestRunner и UnityEditor.TestRunner уже имеют ссылки, вместе со ссылкой на сборку NUnit. Нажмите кнопку `+` в Ссылках на определения сборки, чтобы добавить новую ссылку. Нажмите на маленький круг и выберите MyExercise и нажмите Применить в нижней части инспектора (возможно, вам придется прокрутить вниз).

Откройте решение C# с помощью IDE (Visual Studio или Rider) и откройте созданный тестовый файл. Вы можете удалить метод с помощью [UnityTest] атрибут, так как вам это не понадобится. В методе с [Test] атрибут, вы можете добавить команду assert, чтобы проверить, что MyMath.Add работает правильно. E.g. использование Assert.AreEqual. Переименуйте метод так, чтобы название было более описательным. Хорошая практика — чтобы имя метода описывало, что именно проверяется. Например, класс мог бы называться MyMathTests и первый тест мог бы быть AddsTwoPositiveIntegers. Если вы хотите, вы можете добавить дополнительные методы, которые тестируют другие комбинации чисел. Наилучшей практикой является то, что каждый тест должен иметь только одну проверку.

Вернитесь в Unity и откройте интерфейс Test Runner. Здесь вы увидите дерево, в котором есть имя вашей тестовой сборки, имя класса и имя метода. Это отражает общую структуру тестов в NUnit — фреймворке, на котором построен Unity Test Framework. В каждом классе может быть несколько тестов, а в пространстве имён или сборке — несколько тестовых классов. Двойным щелчком по имени теста или любого его родителя можно запустить тест. При успешном прохождении появится зелёная галочка, при неудаче — красный крестик. Если тестов не видно, проверьте журнал консоли: любая ошибка компиляции скроет все тесты.

Теперь вы можете вернуться к вашему тестовому коду и добавить тесты для метода Subtract. Обратите внимание, что вы, вероятно, увидите, что тесты не сработают, так как в нашем методе Subtract есть ошибка. После того, как вы увидите, что ваш тест не сработал с существенной ошибкой (e.g. Expected 2, but got 6), вы можете перейти к MyMath.cs и исправить возвращаемое значение на return a - b;. Затем перезапустите тест, чтобы убедиться, что вы исправили ошибку.

Подсказки

  • Иногда UI для создания тестовой сборки и создания вашего первого тестового файла может быть немного сложно использовать. Если Test Runner UI не регистрирует вашу сборку, попробуйте нажать на папку в окне проекта или перейти в папку с asmdef.

Решение

Решение для этого упражнения можно найти в примере 1_RunningTest_Project_Solution. Решение содержит папку Tests с файлом asmdef и один файл .cs, содержащий тесты.

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