DaedalicEntertainment/ue4-test-automation

Specifying Launch Configuration

error454 opened this issue ยท 5 comments

Hey folks, this looks like a really great framework, thanks for taking the time to open source your efforts ๐Ÿ‘.

I just finished reading the tiny Gauntlet docs and stumbled on this project while searching for implementation examples. So I apologize if I'm asking Gauntlet newb questions, I haven't yet read through its source.

Right now I am manually launching my test maps by setting specific PIE options based on the map, however, I really want to move to CI. I was hoping your framework might help here but I am a little confused about where the plugin sits in the launch process with Gauntlet in the mix.

For instance, I see that you can specify console parameters in the plugin, but can I also specify launch configuration in the plugin? For instance, when I test using PIE, I might set these options for one of my test maps:

  • 4 clients
  • dedicated server
  • emulate bad network

Can I do that via the plugin or does that happen via some undocumented Gauntlet switches?

After further research and a question on UDN, the traditional way to do this is to grab the default ULevelEditorPlaySettings object before the test starts and set options there. This would either be in AFunctionalTests::PrepareTest, UGauntletTestController::OnInit or FAutomationTestBase::RunTest depending on which solution is being used.

Hi @error454
were you able to make progress with the multiplayer tests?

I never got to the point of automatically launching the correct configuration. I have sets of tests that run with some engineer intervention for various multiplayer configurations.

Okay I found a solution that works. It will take a few weeks to make the required code changes to the plugin.
Inspired by Karol Gaida and his presentation on the GIC

Okay I found a solution that works.

This looks like what the Sea of Thieves folks ended up with but with an actual roadmap. I think many of us have hacked in some subset of these features in our own way, it would be great to have them as part of the framework.