Example #1
0
        private static void tryRunTests()
        {
            AppDomain.CurrentDomain.UnhandledException += CurrentDomainUnhandledExceptionHandler;
            try
            {
                var parser = new OptionsXmlReader(_arguments.InputFile);
                parser.Parse();
                if (!parser.IsValid)
                    return;

                run(parser);

                var writer = new ResultsXmlWriter(_results);
                writer.Write(_arguments.OutputFile);
            }
            catch (Exception ex)
            {
                try
                {
                    var result = new List<TestResult>();
                    result.Add(ErrorHandler.GetError("Init", ex));
                    var writer = new ResultsXmlWriter(result);
                    writer.Write(_arguments.OutputFile);
                }
                catch
                {
                    Console.WriteLine(ex.ToString());
                }
            }
        }
 public void When_file_does_not_exist_plugins_should_be_null()
 {
     var parser = new OptionsXmlReader("");
     parser.Parse();
     Assert.That(parser.Plugins, Is.Null);
     Assert.That(parser.IsValid, Is.False);
 }
Example #3
0
 private static IEnumerable<Plugin> getPlugins(OptionsXmlReader parser)
 {
     if (parser.Plugins.Count() == 0)
         return allPlugins();
     return parser.Plugins;
 }
Example #4
0
 private static void run(OptionsXmlReader parser, PipeJunction junction)
 {
     foreach (var plugin in getPlugins(parser))
     {
         var instance = plugin.New();
         foreach (var currentRuns in parser.Options.TestRuns.Where(x => x.ID.ToLower().Equals("any") || instance.Handles(x.ID)))
         {
             var run = getTestRunsFor(instance, currentRuns);
             if (run == null)
                 continue;
             foreach (var assembly in run.Assemblies)
             {
                 WriteNow("Running tests for " + assembly.Assembly + " using " + plugin.Type);
                 var pipeName = Guid.NewGuid().ToString();
                 junction.Combine(pipeName);
                 var process = new SubDomainRunner(plugin, run.ID, run.Categories, assembly, _arguments.Logging, pipeName, _arguments.CompatabilityMode);
                 process.Run(null);
             }
         }
     }
 }
Example #5
0
 private static void run(OptionsXmlReader parser)
 {
     var handles = new List<ManualResetEvent>();
     foreach (var plugin in getPlugins(parser))
     {
         foreach (var run in parser.Options.TestRuns)
         {
             foreach (var assembly in run.Assemblies)
             {
                 WriteNow("Running tests for " + assembly.Assembly);
                 var process = new SubDomainRunner(plugin, run.ID, run.Categories, assembly, _arguments.Logging);
                 if (_arguments.RunInParallel)
                 {
                     var handle = new ManualResetEvent(false);
                     handles.Add(handle);
                     ThreadPool.QueueUserWorkItem(process.Run, handle);
                 }
                 else
                     process.Run(null);
             }
         }
     }
     if (_arguments.RunInParallel)
         WaitHandle.WaitAll(handles.ToArray());
 }
 public void When_file_does_not_exist_options_should_be_null()
 {
     var parser = new OptionsXmlReader("");
     parser.Parse();
     Assert.That(parser.Options, Is.Null);
 }
 public void SetUp()
 {
     _parser = new OptionsXmlReader(getPath("TestOptions.xml"));
     _parser.Parse();
 }