using NUnit.Framework; using UnityEditor; using UnityEngine; using System.Collections.Generic; using System.Reflection; using UnityEngine.TestTools; namespace Unity.Rendering.ToonShader.Tests { public class ShaderCompileTest { [Test] public void CompileLegacyToonShadersDefault() { string[] guids = AssetDatabase.FindAssets("t:Shader", new[] { LEGACY_SHADERS_PATH}); int numShaders = guids.Length; Assert.Greater(numShaders,0); bool shaderHasError = false; for (int i=0;i<numShaders && !shaderHasError;++i) { string curAssetPath = AssetDatabase.GUIDToAssetPath(guids[i]); Shader shader = AssetDatabase.LoadAssetAtPath<Shader>(curAssetPath); AssetDatabase.ImportAsset(curAssetPath); //Recompile the shader to make sure there are no compile errors Assert.True(shader.isSupported); shaderHasError = ShaderUtil.ShaderHasError(shader); Assert.False(shaderHasError); } } private const string LEGACY_SHADERS_PATH = "Packages/com.unity.toonshader/Runtime/Integrated/Shaders"; } } //end namespace
时间: 2023-12-30 16:03:32 浏览: 163
HigLabo.Mapper 使用单元测试
这是一个使用 NUnit 测试框架和 Unity 编辑器的测试脚本。该脚本在 Unity 的 Toon Shader 包中,用于测试所有旧版 Toon Shader 的编译是否成功,以确保它们可以在当前版本的 Unity 中正常工作。测试脚本首先查找所有 Toon Shader 的资源,然后逐个导入并重新编译,最后检查每个 Shader 是否支持和是否有编译错误。如果测试通过,说明所有旧版 Toon Shader 已经成功编译,可以在当前版本的 Unity 中使用。
阅读全文