Как вы запускаете тесты из командной строки?

Чтобы сделать это в редакторе, вы открываете вкладку автоматизации, подключаетесь к сеансу и выбираете, какие тесты следует запускать.

Как это сделать из командной строки?

(NB, не компилируя UnrealEngine/Engine/Build/BatchFiles/*, всесторонне охватывает как создание приложения, так и его компиляцию. В частности, учитывая, что у вас есть код, который на 100% счастлив скомпилировать, как вы удалите тестовый пакет )

-

Вот еще информация, из недавнего тестирования на 4.10:

Выполнение тестов из редактора:

UE4Editor Project.uproject -ExecCmds="Automation RunTests MyTest"

Обратите внимание на отсутствие флага -Game; это запускает редактор и успешно запускает тесты в консоли редактора.

Запуск игрового движка и использование окна всплывающего окна:

UE4Editor Project.uproject -Game -ExecCmds="Automation RunTests MyTest" -log

Это запускает игру в режиме "игры", всплывает окно редактора; однако журналы останавливаются на:

LogAssetRegistry: FAssetRegistry took 0.0004 seconds to start up

... и игра никогда не закрывает или не выполняет тесты.

Запуск движка игры и запись в файл:

UE4Editor Project.uproject -Game -ExecCmds="Automation RunTests MyTest" -log=Log.txt

Это запускает игру в режиме "воспроизведения", а затем останавливается и никогда не существует.

Кажется, что он не запускает никаких тестов или не записывает файлы в файлы.

Папка Saved/Logs не существует после выхода из текущей игры.

Запуск в редакторе, типы тестов и т.д.

см. https://answers.unrealengine.com/info/358821/hot-reload-does-not-re-compile-automation-tests.html,

Горячая перезагрузка не поддерживается для тестов; поэтому это не вариант.

В некоторых местах также было высказано предположение, что тип теста (например, ATF_Game, ATF_Editor) оказывает некоторое влияние на выполнение или запуск; возможно, это проблема, но я пробовал всевозможные комбинации без успеха.

-

Я пробовал всевозможные комбинации вещей, пытаясь заставить это работать, без успеха, поэтому пришло время для награды.

Я буду принимать ответ, который надежно:

  • Выполняет специальный тест из командной строки
  • Записывает вывод из этого теста в файл

Ответ 1

Правильно, никто не имеет никакой идеи здесь или в вопросе трекера.

После некоторого серьезного копания через исходный код UE4, вот реальная сделка, которую я оставляю здесь для следующей страдающей души, которая не может понять это:

Чтобы запустить тесты из командной строки и зарегистрировать выходные данные и выйти после запуска, используйте:

UE4Editor.exe path/to/project/TestProject.uproject
              -ExecCmds="Automation RunTests SourceTests"
              -unattended
              -nopause
              -testexit="Automation Test Queue Empty"
              -log=output.txt
              -game

В OSX используйте UE4Editor.app/Contents/MacOS/UE4Editor.

Обратите внимание, что журналы, независимо от того, что вы поставляете, в конечном итоге должны быть размещены:

WindowsNoEditor/TestProject/Saved/Logs/output.txt

или

~/Library/Logs/TestProject/output.txt 

Обратите внимание, что для mac это вне вашего каталога проекта, например, /Users/doug/Library/Logs/TestProject. (Кто думал, что это хорошая идея?)

(см. https://wiki.unrealengine.com/Locating_Project_Logs#Game_Logs)

Вы можете перечислить тесты автоматизации, используя:

-ExecCmds="Automation List"

... и затем проанализировать ответ, чтобы найти тесты для запуска; команды автоматизации могут быть закодированы, например:

-ExecCmds="Automation List, Automation RunAll"

Ответ 2

Вы имеете в виду командную строку в редакторе или командную строку Windows?

В редакторе вы можете использовать команду Automation с параметрами, например. Автоматизация RunAll

В командной строке Windows вы можете указать нереальные параметры команды с помощью -ExecCmds. Для запуска всех тестов в вашем проекте: UE4Editor.exe YOURPROJECT -Game -ExecCmds = "Автоматизация RunAll"

Ответ 3

Для всех, кто все еще задается вопросом, в редакторе есть ошибка, из-за которой список тестов очищается, прежде чем они будут запущены, когда они будут запущены из командной строки (будь то при запуске или после).

Это означает, что редактор фактически компилирует список тестов для запуска, который затем очищается другой частью программы. Редактор тогда думает, что он завершил выполнение всего теста и, поскольку ошибок нет, показывает, что все они преуспели.

Я могу опубликовать, как это сделать, если кто-то заинтересован, но он вводит еще одну небольшую ошибку.