Bonjour,
Je poste juste cette info que je n'ai trouvée nulle part, ca pourrait peut etre servir à quelqu'un...
Prenez ce code:
Puis ce programme qui lance le test:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 using System; using NUnit.Framework; // genere MonoTests.dll namespace MonoTests { [TestFixture] public class MonoTestSuite { [Test] public void MonoTest1() { } } }
Et bien sous mono 2.2 (machine virtuelle openSUSE téléchargée sur le site officiel de mono) vous obtiendrez cette jolie erreur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 using System; using NUnit.Framework; using NUnit.ConsoleRunner; namespace MonoTestsLauncher { class Program { static int Main(string[] args) { string[] NUnitArgs = new string[] { "-run=MonoTests.MonoTestSuite.MonoTest1", "/foo/bar/MonoTests.dll" }; return NUnit.ConsoleRunner.Runner.Main(NUnitArgs); } } }
(je précise que j utilise les dernieres version des dll NUnit, et non pas celles ditribuées avec mono, d ou la version de NUnit 2.5.0.8332 (Beta-1))NUnit version 2.5.0.8332 (Beta-1)
Copyright (C) 2002-2008 Charlie Poole.\r\nCopyright (C) 2002-2004 James W. Newkirk, Michael C. Two, Alexei A. Vorontsov.\r\nCopyright (C) 2000-2002 Philip Craig.\r\nAll Rights Reserved.
Runtime Environment -
OS Version: Unix 2.6.25.18
CLR Version: 2.0.50727.1433 ( Mono 2.2 )
Selected test: MonoTests.MonoTestSuite.MonoTest1
Unhandled Exception:
System.NullReferenceException: Object reference not set to an instance of an object
Server stack trace:
at NUnit.Core.SimpleTestRunner.CountTestCases (ITestFilter filter) [0x00000]
at NUnit.Core.ProxyTestRunner.CountTestCases (ITestFilter filter) [0x00000]
at NUnit.Core.ProxyTestRunner.CountTestCases (ITestFilter filter) [0x00000]
at (wrapper managed-to-native) System.Runtime.Remoting.RemotingServices:InternalExecute (System.Reflection.MethodBase,object,object[],object[]&)
at System.Runtime.Remoting.RemotingServices.InternalExecuteMessage (System.MarshalByRefObject target, IMethodCallMessage reqMsg) [0x00000]
Exception rethrown at [0]:
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke (System.Runtime.Remoting.Proxies.RealProxy rp, IMessage msg, System.Exception& exc, System.Object[]& out_args) [0x00000]
Le truc bien pénible alors que sous Windaube ca marche tres bien...
Et bien la solution c'est de lancer le test comme ceci (une option de console supplémentaire):
Specifier le non du "fixture" est donc necessaire, sans ca il est incapable de trouver le test dans le dll fourni, certains préconisent meme de jouer avec l'option -domain (dans ce cas precis specifier -domain=Single) mais chez moi cela ne change rien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 string[] NUnitArgs = new string[] { "-fixture=MonoTests.MonoTestSuite", "-run=MonoTests.MonoTestSuite.MonoTest1", "/foo/bar/MonoTests.dll" }; return NUnit.ConsoleRunner.Runner.Main(NUnitArgs);
Partager