What we have done on past projects is to make a
SmokeTest overlay that contains a
Mind class that contains and runs a bunch of associated test scenarios.
We had this connected to our build system so that whenever anyone checked in any changes including code or assets, the build server would build the game, and then run it with the
SmokeTest scenarios enabled. Only if it completed all the scenarios successfully would the changes be considered accepted and good.
You could start off with something that is activated by hand rather than completely automated.
Make an overlay and it should be the last overlay applied - just after your project overlay.
SmokeTest class could have class constructor that starts off a series of scenarios to test things out.
To comment out the overlay, you would just add a minus to its name as is described in the docs at Overlay files.
Alternatively you could have it so that the smoke tests are run if run a particular Sk command via the SkookumIDE workbench or when you walk through a special trigger region or press a special hotkey. If it is set up as a SkookumIDE command you can even associate it to a hotkey in Visual Studio.
You can also call from C++ into SkookumScript based on a particular build setting or other events that you detect on the C++ side:
Ideally you might want to have it so that the SmokeTest stuff is triggered by a special command line argument that is sent to your game when it is run in smoke test mode - though you might not need that level of sophistication.
Also take a look at the commands in the Sk
Debug class. All
Debug commands are removed from the code for a shipping build of your project.
Break.assert() or some of the other calls in there might be what you are looking for.
If there are additional commands that you think could help, just let us know.
I’m sure Sk could be integrated ingo the UE4 Automated testing tool though we haven’t looked into that yet. You could certainly give it a shot yourself if you like.
Hope this helps as a start. This is a big topic that deserves a lot of though and discussion.
I don’t know what your academic requirements are, though SkookumScript is designed to be integrated with C++ code and projects. Here is some info on how to do that if you are interested: