/* http://www.cgsoso.com/forum-211-1.html CG搜搜 Unity3d 每日Unity3d插件免费更新 更有VIP资源! CGSOSO 主打游戏开发,影视设计等CG资源素材。 插件如若商用,请务必官网购买! daily assets update for try. U should buy the asset from home store if u use it in your project! */ using UnityEngine; public class LeanTest { public static int expected; private static int tests; private static int passes; public static float timeout = 15f; public static bool timeoutStarted; public static bool testsFinished; public static void debug(string name, bool didPass, string failExplaination = null) { expect(didPass, name, failExplaination); } public static void expect(bool didPass, string definition, string failExplaination = null) { float num = printOutLength(definition); int totalWidth = 40 - (int)(num * 1.05f); string text = string.Empty.PadRight(totalWidth, "_"[0]); string text2 = formatB(definition) + " " + text + " [ " + ((!didPass) ? formatC("fail", "red") : formatC("pass", "green")) + " ]"; if (!didPass && failExplaination != null) { text2 = text2 + " - " + failExplaination; } UnityEngine.Debug.Log(text2); if (didPass) { passes++; } tests++; if (tests == expected && !testsFinished) { overview(); } else if (tests > expected) { UnityEngine.Debug.Log(formatB("Too many tests for a final report!") + " set LeanTest.expected = " + tests); } if (!timeoutStarted) { timeoutStarted = true; GameObject gameObject = new GameObject(); gameObject.name = "~LeanTest"; LeanTester leanTester = gameObject.AddComponent(typeof(LeanTester)) as LeanTester; leanTester.timeout = timeout; gameObject.hideFlags = HideFlags.HideAndDontSave; } } public static string padRight(int len) { string text = string.Empty; for (int i = 0; i < len; i++) { text += "_"; } return text; } public static float printOutLength(string str) { float num = 0f; for (int i = 0; i < str.Length; i++) { num = ((str[i] != "I"[0]) ? ((str[i] != "J"[0]) ? (num + 1f) : (num + 0.85f)) : (num + 0.5f)); } return num; } public static string formatBC(string str, string color) { return formatC(formatB(str), color); } public static string formatB(string str) { return "" + str + ""; } public static string formatC(string str, string color) { return "" + str + ""; } public static void overview() { testsFinished = true; int num = expected - passes; string text = (num <= 0) ? (string.Empty + num) : formatBC(string.Empty + num, "red"); UnityEngine.Debug.Log(formatB("Final Report:") + " _____________________ PASSED: " + formatBC(string.Empty + passes, "green") + " FAILED: " + text + " "); } }