WuhuIslandTesting/Library/PackageCache/com.unity.addressables@1.21.12/Tests/Editor/Build/AddressableBuildTaskTestBase.cs

55 lines
1.8 KiB
C#
Raw Normal View History

2025-01-07 02:06:59 +01:00
using System.Collections;
using System.Collections.Generic;
using System.IO;
using NUnit.Framework;
using UnityEditor;
using UnityEditor.AddressableAssets.Build.BuildPipelineTasks;
using UnityEditor.AddressableAssets.Settings;
using UnityEngine;
public class AddressableBuildTaskTestBase
{
protected AddressableAssetSettings m_Settings;
protected string TempPath
{
get { return $"Assets/{GetType().Name}TestData"; }
}
[SetUp]
public void Setup()
{
using (new IgnoreFailingLogMessage())
{
if (AssetDatabase.IsValidFolder(TempPath))
AssetDatabase.DeleteAsset(TempPath);
Directory.CreateDirectory(TempPath);
m_Settings = AddressableAssetSettings.Create(Path.Combine(TempPath, "Settings"),
"AddressableAssetSettings.Tests", false, true);
}
}
[TearDown]
public void Teardown()
{
// Many of the tests keep recreating assets in the same path, so we need to unload them completely so they don't get reused by the next test
AssetDatabase.DeleteAsset(AssetDatabase.GetAssetPath(m_Settings));
Resources.UnloadAsset(m_Settings);
if (Directory.Exists(TempPath))
Directory.Delete(TempPath, true);
AssetDatabase.Refresh();
}
protected static string CreateAsset(string assetPath, string objectName)
{
GameObject go = GameObject.CreatePrimitive(PrimitiveType.Cube);
go.name = objectName;
//this is to ensure that bundles are different for every run.
go.transform.localPosition = UnityEngine.Random.onUnitSphere;
PrefabUtility.SaveAsPrefabAsset(go, assetPath);
UnityEngine.Object.DestroyImmediate(go, false);
return AssetDatabase.AssetPathToGUID(assetPath);
}
}