Pytanie Jak uruchomić testy z wiersza poleceń?


Aby to zrobić w edytorze, otwórz zakładkę automatyzacji, połącz się z sesją i wybierz, które testy mają zostać uruchomione.

Jak to zrobić z linii poleceń?

(Uwaga: kompilacja UnrealEngine / Engine / Build / BatchFiles / * nie obejmuje kompleksowo zarówno budowania aplikacji, jak i kompilacji.) W szczególności, biorąc pod uwagę, że masz kod, który jest w 100% gotowy do kompilacji, w jaki sposób możesz wykopać pakiet testowy?

-

Oto trochę więcej informacji, od niedawnych testów na 4.10:

Uruchamianie testów z edytora:

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

Zauważ brak abonenta -Game flaga; to uruchamia edytor i pomyślnie uruchamia testy w konsoli edytora.

Uruchamianie silnika gry i korzystanie z "okna dziennika wyskakującego":

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

To uruchamia grę w trybie "play", wyskakuje okno edytora; jednak logi zatrzymują się na:

LogAssetRegistry: FAssetRegistry took 0.0004 seconds to start up

... a gra nigdy się nie zamyka ani nie wykonuje testów.

Uruchamianie silnika gry i logowanie do pliku:

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

To uruchamia grę w trybie "play", a następnie zatrzymuje się i nigdy nie istnieje.

Wygląda na to, że nie uruchamia żadnych testów ani logów do żadnych plików.

Folder Saved/Logs nie istnieje po wyjściu z uruchomionej gry.

Uruchamianie w edytorze, typy testowe itp ...

widzieć: https://answers.unrealengine.com/questions/358821/hot-reload-does-not-re-compile-automation-tests.html,

Hot reload nie jest obsługiwany w przypadku testów; więc nie jest to możliwe.

W różnych miejscach pojawiły się również sugestie, że typ testu (np. ATF_Game, ATF_Editor) ma wpływ na to, czy przebiegi są lub mogą być uruchamiane; Być może jest to problem, ale próbowałem wszystkich kombinacji bez powodzenia.

-

Próbowałem różnych kombinacji rzeczy, próbując sprawić, by działało, bez powodzenia, więc nadszedł czas na nagrodę.

Przyjmuję odpowiedź, która niezawodnie:

  • Wykonuje określony test z wiersza poleceń
  • Rejestruje dane wyjściowe z tego testu do pliku

11
2018-03-19 00:34


pochodzenie


Pamiętam, że miałem z tym trochę problemów. Nie pamiętam, w jakim stanie zostałem, ale myślę to pytanie na temat UE Answers zawiera wszystko, co kiedykolwiek odkryłem. Wygląda na to, że mamy wszystkie testy, ale nie podzbiór. - T. Kiley


Odpowiedzi:


Tak, nikt nie ma pojęcia tutaj ani na temat śledzenia problemu.

Po poważnym wykopaniu kodu źródłowego UE4, oto rzeczywisty interes, który zostawiam tutaj dla kolejnej cierpiącej duszy, która nie może tego zrozumieć:

Aby uruchomić testy z wiersza poleceń, i zaloguj wyjście i wyjdź po uruchomieniu testowym użyj:

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

W przypadku korzystania z OSX UE4Editor.app/Contents/MacOS/UE4Editor.

Zauważ, że logi, niezależnie od tego, co dostarczysz, ostatecznie zostaną umieszczone w:

WindowsNoEditor/TestProject/Saved/Logs/output.txt

lub

~/Library/Logs/TestProject/output.txt 

Zauważ, że dla mac to jest poza katalogiem projektu, na przykład /Users/doug/Library/Logs/TestProject. (Kto pomyślał, że to dobry pomysł?)

(widzieć https://wiki.unrealengine.com/Locating_Project_Logs#Game_Logs)

Możesz wyświetlić listę testów automatyzacji za pomocą:

-ExecCmds="Automation List"

... a następnie przeanalizować odpowiedź, aby znaleźć testy do uruchomienia; komendy automatyzacji mogą być powiązane, na przykład:

-ExecCmds="Automation List, Automation RunAll"

7
2018-02-11 12:19



Użyłem tego polecenia, ale kiedy patrzę w dzienniku, mówi tylko ...Automation Test Queue Empty 184 tests performed.. Jestem pewien, że jeden z testów zawodzi i powinien pokazać błąd, ponieważ dodałem AddError("Wrong"). Ale nie pojawia się w dzienniku. Jak dowiedziałeś się, że informacje o testach przeszły i zakończyły się niepowodzeniem? - Marnix


Masz na myśli linię poleceń w edytorze lub wiersz poleceń systemu Windows?

W edytorze możesz użyć Automatyzacja polecenie z parametrami, np. Automation RunAll

W wierszu poleceń systemu Windows można podać nierealne parametry polecenia za pomocą -ExecCmds. Aby uruchomić wszystkie testy w projekcie: UE4Editor.exe YOURPROJECT -Game -ExecCmds = "Automation RunAll"


2
2018-03-19 08:55



Czy nic nie robi? Po prostu otwiera projekt w trybie gry. Czy powinien wydrukować wyniki testu do wiersza poleceń, czy coś w tym stylu? - Doug
Powinien wydrukować go do pliku dziennika w YourProjectDir / Saved / Logs. - TheBrain
Tylko pliki w moim folderze Saved to AutoScreenshot.png, Autosaves, Backup, Config :( - Doug


Dla każdego, kto wciąż się zastanawia, w edytorze jest błąd, który powoduje, że lista testowa jest przepłukiwana, zanim zostaną uruchomione, gdy zostaną uruchomione z wiersza poleceń (czy to podczas uruchamiania, czy później).

Oznacza to, że edytor faktycznie tworzy listę testów do uruchomienia, która jest następnie opróżniana przez inną część programu. Redaktor uważa, że ​​zakończył już wszystkie testy, a ponieważ nie ma błędów, pokazuje, że wszystkie odniosły sukces.

Mogę napisać, jak to naprawić, jeśli ktoś jest zainteresowany, ale wprowadza kolejny drobny błąd.


0
2017-12-21 19:19



Karmoka, ta odpowiedź nie rozwiązuje żadnego z problemów poruszonych w pytaniu. Chociaż jest to pomocne, najlepiej jest ustawić je jako dodatek do odpowiedzi na pytanie. - Jared Clemence
Odpowiada na to pytanie, ponieważ niemożliwe jest przeprowadzanie testów z wiersza poleceń od wersji UE4.16 bez zmian w silniku. Ze swojej natury żadne argumenty nie mogą ominąć tego błędu. - Karmoka
Uruchamianie odpowiedzi z czymś w rodzaju: "Przeprowadzenie testów z wiersza poleceń jest całkiem niemożliwe" pomogłoby w łatwiejszym odczytaniu odpowiedzi. To dobra edycja, którą zasugerowałeś. - Jared Clemence