149 lines
4.4 KiB
C#
149 lines
4.4 KiB
C#
using UnityEngine;
|
|
using System.Collections;
|
|
|
|
namespace LeanTweenFramework
|
|
{
|
|
public class LeanTester : MonoBehaviour
|
|
{
|
|
public float timeout = 15f;
|
|
|
|
#if !UNITY_3_5 && !UNITY_4_0 && !UNITY_4_0_1 && !UNITY_4_1 && !UNITY_4_2 && !UNITY_4_3 && !UNITY_4_5
|
|
public void Start()
|
|
{
|
|
StartCoroutine(timeoutCheck());
|
|
}
|
|
|
|
IEnumerator timeoutCheck()
|
|
{
|
|
float pauseEndTime = Time.realtimeSinceStartup + timeout;
|
|
while (Time.realtimeSinceStartup < pauseEndTime)
|
|
{
|
|
yield return 0;
|
|
}
|
|
if (LeanTest.testsFinished == false)
|
|
{
|
|
Debug.Log(LeanTest.formatB("Tests timed out!"));
|
|
LeanTest.overview();
|
|
}
|
|
}
|
|
#endif
|
|
}
|
|
|
|
public class LeanTest : object
|
|
{
|
|
public static int expected = 0;
|
|
private static int tests = 0;
|
|
private static int passes = 0;
|
|
|
|
public static float timeout = 15f;
|
|
public static bool timeoutStarted = false;
|
|
public static bool testsFinished = false;
|
|
|
|
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 len = printOutLength(definition);
|
|
int paddingLen = 40 - (int)(len * 1.05f);
|
|
#if UNITY_FLASH
|
|
string padding = padRight(paddingLen);
|
|
#else
|
|
string padding = "".PadRight(paddingLen, "_"[0]);
|
|
#endif
|
|
string logName = formatB(definition) + " " + padding + " [ " + (didPass ? formatC("pass", "green") : formatC("fail", "red")) + " ]";
|
|
if (didPass == false && failExplaination != null)
|
|
logName += " - " + failExplaination;
|
|
Debug.Log(logName);
|
|
if (didPass)
|
|
passes++;
|
|
tests++;
|
|
|
|
// Debug.Log("tests:"+tests+" expected:"+expected);
|
|
if (tests == expected && testsFinished == false)
|
|
{
|
|
overview();
|
|
}
|
|
else if (tests > expected)
|
|
{
|
|
Debug.Log(formatB("Too many tests for a final report!") + " set LeanTest.expected = " + tests);
|
|
}
|
|
|
|
if (timeoutStarted == false)
|
|
{
|
|
timeoutStarted = true;
|
|
GameObject tester = new GameObject();
|
|
tester.name = "~LeanTest";
|
|
LeanTester test = tester.AddComponent(typeof(LeanTester)) as LeanTester;
|
|
test.timeout = timeout;
|
|
#if !UNITY_EDITOR
|
|
tester.hideFlags = HideFlags.HideAndDontSave;
|
|
#endif
|
|
}
|
|
}
|
|
|
|
public static string padRight(int len)
|
|
{
|
|
string str = "";
|
|
for (int i = 0; i < len; i++)
|
|
{
|
|
str += "_";
|
|
}
|
|
return str;
|
|
}
|
|
|
|
public static float printOutLength(string str)
|
|
{
|
|
float len = 0.0f;
|
|
for (int i = 0; i < str.Length; i++)
|
|
{
|
|
if (str[i] == "I"[0])
|
|
{
|
|
len += 0.5f;
|
|
}
|
|
else if (str[i] == "J"[0])
|
|
{
|
|
len += 0.85f;
|
|
}
|
|
else
|
|
{
|
|
len += 1.0f;
|
|
}
|
|
}
|
|
return len;
|
|
}
|
|
|
|
public static string formatBC(string str, string color)
|
|
{
|
|
return formatC(formatB(str), color);
|
|
}
|
|
|
|
public static string formatB(string str)
|
|
{
|
|
#if UNITY_3_5 || UNITY_4_0 || UNITY_4_0_1 || UNITY_4_1 || UNITY_4_2
|
|
return str;
|
|
#else
|
|
return "<b>" + str + "</b>";
|
|
#endif
|
|
}
|
|
|
|
public static string formatC(string str, string color)
|
|
{
|
|
#if UNITY_3_5 || UNITY_4_0 || UNITY_4_0_1 || UNITY_4_1 || UNITY_4_2
|
|
return str;
|
|
#else
|
|
return "<color=" + color + ">" + str + "</color>";
|
|
#endif
|
|
}
|
|
|
|
public static void overview()
|
|
{
|
|
testsFinished = true;
|
|
int failedCnt = (expected - passes);
|
|
string failedStr = failedCnt > 0 ? formatBC("" + failedCnt, "red") : "" + failedCnt;
|
|
Debug.Log(formatB("Final Report:") + " _____________________ PASSED: " + formatBC("" + passes, "green") + " FAILED: " + failedStr + " ");
|
|
}
|
|
}
|
|
} |