I am currently trying to setup automated tests for our game. I got so far that I my tests show up in editor now and I can run them. What I am trying to achieve now is to spawn a new actor and test if it is initialized correctly. I cant access UWorld from my test. I found that there are the AutomationEditorCommonUtils but I always get the following error using them:
C:\Program Files\Epic Games\4.12\Engine\Source\Runtime\Engine\Public\Tests\AutomationCommon.h(55): error C2065: ‘GEngine’: undeclared identifier
Is there a general tutorial for automated testing? All I can find so far is this:
which (of course) is not up to date and does not give a lot of information.
Any feedback appreciated
I would also like to get into automated testing, and have found the documentation to be awful at best.
I have similar problem with testing objects like scene components. Whole UEEditor crashes with “FObjectInitializer::Get() can only be used inside of UObject-derived class constructor.” when trying to initialize such in the test.
I use a copy of
GetAnyGameWorld() from AutomationCommon.cpp, which always returns the same
UWorld* that has been used for loading the map with
You can then proceed to spawn the actor as you would in the game.
This works for me, but is quite hacky. I hope they have a better solution soon.
It only works if you’re in a PIE or Game session unless you modified the function. I make my test throw up a warning if the return value was null, telling people to start a PIE or game session to run the test. Fortunately this isn’t a problem for my specific test I’m working on even though it’s quite hacky.