I’m co-developing a plugin to Unreal Engine and we have some unit tests in our project.
The unit-tests are running the Editor without a GUI from command line. This is achieved by passing the -NullRHI command line argument to the Editor executable.
This generally works great, but we have a situation that causes a hard crash:
In one of our unit tests, we create a Blueprint by calling
FKismetEditorUtilities::CreateBlueprintFromActor. This function will end up calling
GEditor->GetEditorSubsystem<UAssetEditorSubsystem>()->OpenEditorForAsset(NewBlueprint); i.e. launcing the asset editor for the new Blueprint. Calling the above function while running with -NullRHI seems to always result in a hard crash with a callstack printed out in the logs.
There is no way to stop the
FKismetEditorUtilities::CreateBlueprintFromActor function to call
GEditor->GetEditorSubsystem<UAssetEditorSubsystem>()->OpenEditorForAsset(NewBlueprint); in UE 4.25.
So my question is; does anyone know how this can be worked around somehow? I’ve tried with the
-server argument but that’s not what we want.
Is using -NullRHI even the correct way of running headless, or is there a better way?