DaedalicEntertainment / ue4-test-automation

Facilitates setting up integration test suits with Unreal Engine 4 Gauntlet.
https://www.daedalic.com
MIT License
215 stars 62 forks source link

Specifying Launch Configuration #7

Closed error454 closed 4 years ago

error454 commented 4 years ago

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:

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

error454 commented 4 years ago

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.

janousch commented 2 years ago

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

error454 commented 2 years ago

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.

janousch commented 2 years ago

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

error454 commented 2 years ago

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.