AltUnity Tester для автоматизации Unity проектов

от автора

AltUnity Tester — это инструмент автоматизации тестирования на основе пользовательского интерфейса с открытым исходным кодом, который помогает находить объекты в вашей игре Unity и взаимодействовать с ними с помощью тестов, написанных на C #, Python или Java.

Как работает

Запускать тесты можно на реальных устройствах или в редакторе Unity. Фреймворк состоит из следующих модулей:

  • Сервер AltUnity

  • Драйвер AltUnity

  • Окно редактора AltUnity Tester

Модуль AltUnity Server нужен, чтобы игра открывала доступ ко всем объектам в иерархии Unity. Игра открывает соединение сокета TCP на устройстве, на котором запущено приложение Unity, и ожидает подключения драйвера после запуска приложения.

Модуль драйвер AltUnity используется для подключения к серверу AltUnity, доступа ко всем объектам Unity и взаимодействия с ними посредством тестов, написанных на C #, Java или Python.

Окно редактора AltUnity Tester — это графический интерфейс, используемый для инструментовки игры Unity и запуска тестов C # непосредственно из редактора Unity.

Установка

Установка достаточна простая, устанавливается Asset Store — ссылка. Так же можно скачать через GitHub.

Далее переходим в диспетчер загрузок Asset Store из редактора Unity и импортируйте пакет в свой проект. После этого в редакторе появится меню AltUnity Tools. Через него можно открыть окно редактора, для запуска тестов.

Первый тест

В папке Editor создаем первый тест. 

Пример написан на C#.

using System.Collections.Generic; using NUnit.Framework; using Altom.AltUnityDriver; using UnityEngine;  public class FirstTest {     public AltUnityDriver altUnityDriver;     //Before any test it connects with the socket     [OneTimeSetUp]     public void SetUp()     {         altUnityDriver =new AltUnityDriver();     }      //At the end of the test closes the connection with the socket     [OneTimeTearDown]     public void TearDown()     {         altUnityDriver.Stop();     }      [Test]     public void Test()     {         //Load Scene         altUnityDriver.LoadScene("level_1");         // Find player         AltUnityObject player = altUnityDriver.FindObject(By.TAG,"Player");         // Get the health parameter         var shealth = player.GetComponentProperty("Health","health","Assembly-CSharp");         int health = int.Parse(shealth);                 while (health>= 100)         {             //Go ahead             AltUnityKeyCode kcode = AltUnityKeyCode.D;             altUnityDriver.PressKey(kcode, 3);             shealth = player.GetComponentProperty("Health","health","Assembly-CSharp");             health = int.Parse(shealth);         }      }  }

Что в нем происходит. Методы SetUp и TearDown запускают драйвер для дальнейшей работы. Метод Test собственно наш тест.  Мы загружаем нужную нам сцену, далее находим нашего игрока. Класс AltUnityObject представляет объекты в игре и позволяет взаимодействовать с ними. У игрока получаем параметр здоровье, далее пока здоровье больше 100 идем вперед.

Запуск тестов

В окне AltUnity Editor запускаем игру. Далее нажимаем Run All Tests и ждем результатов. Белый круг — игрок. Красный овал- враг. При сопрекосновении наносится урон.

Лицензия

Как писалось выше это опенсорсный инструмент. Но есть дополнительный платный инструмент AltUnity Inspector, стоит от 18$ за пользователя в месяц. Нужен для автоматизации тестов без редактора Unity. Что тоже бывает удобно.

Итоги

Инструмент довольно интересный и простой в изучении. Позволяет быстрее писать UI тесты для проектов. Так же у него хорошая поддержка и комьюнити в Discord. Советую попробовать, если задумывались над автоматизацией в Unity проектах.

P.S. Часть информации взята и переведена из официальной документации.


ссылка на оригинал статьи https://habr.com/ru/articles/584742/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *