I’m trying to figure out how to use BuildGraph to run Blueprint Functional Tests, with the goal of eventually having the results be run by Horde Templates and show up in the Horde Automation tab.
I have Gauntlet tests that I’ve written and those I can run in my Templates and show up in the Automation tab.
However, for the life of me, I can’t figure out how to get BuildGraph to run my Blueprint Functional Tests. This is what I currently have, but I’ve spent two days on this and tried dozens of variations.
<Agent Name=“RunFunctionalTestsAgent” Type=“TestWin64”>
\<Node Name\="RunFunctionalTests" Requires\="$(CompileEditorNode)"\>
\<Command Name\="RunUnreal"
Arguments\='\-project\=$(ProjectFile) \-build\=Editor \-test\=UnrealEditor \-unattended \-nop4 \-nosplash \-NoSound \-NoVerifyGC \-NoLoadingScreen \-map\=/Game/Maps/TestLevels/FunctionalTests/TM\_FunctionalTests \-ExecCmds\="Automation RunTest Project.Functional Tests.Maps.TestLevels.FunctionalTests.TM\_FunctionalTests;Quit;"' /\>
\</Node\>
\</Agent\>
My Functional Test is placed in the map (TM_FunctionalTests) and is called FT_DrawStowTest, and is an instance of BP_DrawSwapStowTest.uasset (a Functional Test Blueprint). I can run this test via the Session Frontend and it works perfectly. I can call it directly through something like the following:
“C:\p4\main\game\Engine\Binaries\Win64\UnrealEditor-Cmd.exe” “C:\p4\main\game\OurProject\OurProject.uproject” “/Game/Maps/TestLevels/FunctionalTests/TM_FunctionalTests” -ExecCmds=“Automation RunTests Project.Functional Tests.Maps.TestLevels.FunctionalTests.TM_FunctionalTests.FT_DrawStowTest;Quit;” -unattended -nop4 -nosplash
This also works.
But when I attempt to run it through the BuildGraph above, it loads the map, but never runs the test. I’ve managed to get these variations of outputs:
My test isn’t found, so it runs DefaultTest. (this is the current behavior)
My test is found, “runs”, but none of the code/nodes in my Blueprint get called, so it just times out and fails.
My test isn’t found, so it just launches the Editor and does nothing, waiting forever.
What am I missing? My next attempt is to make a Gauntlet test that just calls my Blueprint, but this doesn’t scale well.