23
23
#region ITestDiscoverer Members
25
public void DiscoverTests(IEnumerable<string> sources, IDiscoveryContext discoveryContext, IMessageLogger logger, ITestCaseDiscoverySink discoverySink)
25
public void DiscoverTests(IEnumerable<string> sources, IDiscoveryContext discoveryContext, IMessageLogger messageLogger, ITestCaseDiscoverySink discoverySink)
27
// Set the logger to use for messages
27
testLog.Initialize(messageLogger);
29
28
Info("discovering tests", "started");
31
30
// Ensure any channels registered by other adapters are unregistered
34
33
foreach (string sourceAssembly in sources)
37
SendInformationalMessage("Processing " + sourceAssembly);
35
testLog.SendDebugMessage("Processing " + sourceAssembly);
39
37
TestRunner runner = new TestDomain();
40
38
TestPackage package = new TestPackage(sourceAssembly);
44
42
if (runner.Load(package))
46
this.testConverter = new TestConverter(sourceAssembly);
44
this.testConverter = new TestConverter(testLog, sourceAssembly);
48
46
int cases = ProcessTestCases(runner.Test, discoverySink);
50
SendInformationalMessage(string.Format("Discovered {0} test cases", cases));
48
testLog.SendDebugMessage(string.Format("Discovered {0} test cases", cases));
55
NUnitLoadError(sourceAssembly);
52
testLog.NUnitLoadError(sourceAssembly);
58
55
catch (System.BadImageFormatException)
60
57
// we skip the native c++ binaries that we don't support.
61
AssemblyNotSupportedWarning(sourceAssembly);
58
testLog.AssemblyNotSupportedWarning(sourceAssembly);
64
61
catch (System.IO.FileNotFoundException ex)
66
63
// Probably from the GetExportedTypes in NUnit.core, attempting to find an assembly, not a problem if it is not NUnit here
67
DependentAssemblyNotFoundWarning(ex.FileName, sourceAssembly);
64
testLog.DependentAssemblyNotFoundWarning(ex.FileName, sourceAssembly);
69
66
catch (System.Exception ex)
71
SendErrorMessage("Exception thrown discovering tests in " + sourceAssembly, ex);
68
testLog.SendErrorMessage("Exception thrown discovering tests in " + sourceAssembly, ex);
75
if (testConverter!=null)
76
testConverter.Dispose();
80
76
Info("discovering test","finished");