Hi. I am using using Unity 3.3 and Visual Studio. I am trying to add NUnit to test some of the proyects data. But when I run the tests in VisualStudio (using (http://www.testdriven.net) I got the following error:
Could not load type 'UnityEditor.Editor' from assembly 'UnityEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' because the format is invalid.
The same error takes place when I use MonoDevelop.
This feedback comment actually made me think about what is going here.
Forget my previous license guess. Sorry.
Unity Engine is c++ stuff that needs to go into a C++ application. As Emil points out in the referenced comment, if no C++ application runs the Unity Engine then UnityEngine.dll cannot wrap the Unity Engine functionality.
Unity Editor is built as a C++ application on-top of the Unity Engine. Hence, UnityEditor.dll cannot wrap the Unity Editor functionalities, if the Editor is not running.
When you run nunit in visual studio, you get a process running that can load and reflect assemblies and run your test code against the assemblies, but you really need the process to be your unity standalone game process or the unity editor process.
I think it is a license check that stops you from calling into the Unity-dlls from an application not being the Unity Editor or a Unity build.