54 lines
1.8 KiB
C#
54 lines
1.8 KiB
C#
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);
|
|
}
|
|
}
|