Write functional tests for multiplayer games to automate your testing and catch bugs early.
Tired of making changes to your Unreal Engine multiplayer game only to realize later that you broke something else? That’s what Functional Testing is for, to automatically test your game without having to do it manually. You can connect this to a Continuous Integration (CI) system to make sure that when any changes are made, the tests will run and you’ll know immediately if anything broke. This can save hours of work because the alternative is to detect the bug much later after it was introduced and then having to investigate to find the root cause.
Unreal Engine has a Functional Testing framework for writing automated tests, but with a big limitation that it only works well for single-player games. This plugin exposes helper methods to be able to write functional tests for multiplayer games.
By default if you run a functional test in client net mode the issue is that anytime you try to access an actor using functions such as “Get All Actors Of Class” it will return data from the server instead of the client. This is OK for some tests but generally for multiplayer games you want to assert the state of the world on the client, not the server. This helps catch bugs related to replication, such as if you forgot to replicate some property or you’re not updating client state properly with ReplicatedUsing / RepNotify.
Features:
Number of Blueprints: 0
Number of C++ Classes: 2
Network Replicated: No (The classes provided don't make sense to be replicated but they support replicated code)
Supported Development Platforms: Win64
Supported Target Build Platforms: Win64, Mac, Linux, Android, iOS
Documentation: Link
Example Project: Link