Logging when using Unity Test Tools

I have use JSUnit which is a test runner for JavaScript and it has three logger functions, info(), warn() and debug(). These function enable you to output any string or value into a separate browser window which is really handy.

I was wondering how and where can I log some output from within my unit tests in Unity?

I use Unity 5.1.4 with Unity Test Tools and there are some way to log but which is the right one?

Debug.Log() runs only when you run the game either in play mode or when build and Console.Writeln() doesn’t work or the output is sent somewhere else.

I use SharpDevelop 5 but I don’t see any output printed from withing my test functions.

Here is a sample test class:

using System;
using System.IO;
using NUnit.Framework;
using NSubstitute;
using UnityEngine;

namespace Assets.UnityTestTools.UnitTesting.Editor.GameUnitTests
	public class SaveLoadGameDataTests
		public void ResetGameStateTest_SetGameStateToNewValuesInWebEnvAndRunTheFunction_PassesIfGameStateHasDefaults()
			// arrange
			SaveLoadGameData saveLoadObject;
			GameObject gameStateObject = new GameObject();
			saveLoadObject = gameStateObject.AddComponent<SaveLoadGameData>();
			saveLoadObject.experience = 1000;
			saveLoadObject.score = 10000;
			saveLoadObject.winPercent = 75;
			saveLoadObject.tasksSolved = 40;
			saveLoadObject.correct = 30;

			saveLoadObject.gameStateDirty = true;
			saveLoadObject.gameIsNormal = false;
			// act
			// assert
			Assert.AreEqual(saveLoadObject.experience, Helper.DEFAULT_EXPERIENCE, "hello");
			Console.WriteLine(saveLoadObject.experience + "," + Helper.DEFAULT_EXPERIENCE );

Just found that Unit Tests Runner window has two panels, one for the tree of available tests and one for output. In the output panel is printed whether the test has a bug or it doesn’t compile.
Make sure the test is compiling and then use Debug.Log() to print output in the Unity Console panel.

Choose the dropdown in the test runner and select “Everything”