|
|
- using UnityEngine;
- using System.Collections;
-
- 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+" ");
- }
- }
-
|