I’m suspecting that the cooking process is not including the map that contains the functional tests anymore.
To force the inclusion of the maps that contain the functional tests you can either force them to be added through the project config file or override the project Asset Manager to make it automatic.
You can achieve that this way:
Add <project>/Source/<project>/AssetManager/<project>AssetManager.h
`#pragma once
include “CoreMinimal.h”
include “Engine/AssetManager.h”
include “AssetManager.generated.h”
/** Overrides cook to make sure all tests get cooked */
UCLASS(BlueprintType)
class MYPROJECT_API UMyProjectAssetManager : public UAssetManager
{
GENERATED_BODY()
public:
#if WITH_EDITOR
virtual void ModifyCook(TConstArrayView<const ITargetPlatform*> TargetPlatforms, TArray& PackagesToCook, TArray& PackagesToNeverCook) override;
#endif
};`Add <project>/Source/<project>/AssetManager/<project>AssetManager.cpp
`#include “AssetManager.h”
include “FunctionalTestingModule.h”
include “Misc/PackageName.h”
#if WITH_EDITOR
void UMyProjectAssetManager::ModifyCook(TConstArrayView<const ITargetPlatform*> TargetPlatforms, TArray& PackagesToCook, TArray& PackagesToNeverCook)
{
Super::ModifyCook(TargetPlatforms, PackagesToCook, PackagesToNeverCook);
TArray TestInfoUnused;
TArray MapAssets;
IFunctionalTestingModule::Get().GetMapTests(false, TestInfoUnused, MapAssets);
// If a map has a runtime test, add to cook list
for (FString MapAsset : MapAssets)
{
PackagesToCook.AddUnique(FName(*FPackageName::ObjectPathToPackageName(MapAsset)));
}
}
#endif`