static int Main(string[] args) { if (args.Length == 0 || args.Length > 2) { Console.WriteLine("usage: TestRunner <assembly> [typeName]"); return(2); } var testAssembly = args[0]; var typeName = args.Length == 2 ? args[1] : null;; using (var runner = AssemblyRunner.WithAppDomain(testAssembly)) { runner.OnDiscoveryComplete = OnDiscoveryComplete; runner.OnExecutionComplete = OnExecutionComplete; runner.OnTestStarting = OnTestStarting; runner.OnTestFailed = OnTestFailed; runner.OnTestSkipped = OnTestSkipped; Console.WriteLine("Discovering..."); runner.Start(typeName); finished.WaitOne(); finished.Dispose(); return(result); } }
public static int Main(string[] args) { string solutionDir = Path.GetDirectoryName( // sw2urdf Path.GetDirectoryName( // TestRunner Path.GetDirectoryName( // bin Path.GetDirectoryName( // x64 Path.GetDirectoryName( // net452 AppDomain.CurrentDomain.BaseDirectory // Debug ))))); string testAssembly = Path.Combine(solutionDir, "SW2URDF\\bin\\x64\\Debug\\SW2URDF.dll"); string typeName = null; using (var runner = AssemblyRunner.WithAppDomain(testAssembly)) { if (null != args && args.Length > 0) { TestNameFilter = args[0]; runner.TestCaseFilter += FilterByClass; } runner.OnDiscoveryComplete = OnDiscoveryComplete; runner.OnExecutionComplete = OnExecutionComplete; runner.OnTestFailed = OnTestFailed; runner.OnTestSkipped = OnTestSkipped; Console.WriteLine("Discovering..."); runner.Start(typeName); finished.WaitOne(); finished.Dispose(); return(result); } }
public async Task <TestSuiteResult> RunTestsAsync(string dllPath) { _executionTime = 0; _finished = new ManualResetEvent(false); _results = new List <TestResult>(); using (var runner = AssemblyRunner.WithAppDomain(dllPath, shadowCopy: false)) { runner.OnExecutionComplete = OnExecutionComplete; runner.OnTestFailed = OnTestFailed; runner.OnTestPassed = OnTestPassed; await Task.Run(() => RunTests(runner)); _finished.WaitOne(); _finished.Dispose(); return(new TestSuiteResult { Name = Path.GetFileName(dllPath), TestResults = _results, ExecutionTime = TimeSpan.FromSeconds((int)_executionTime), IsSuccess = _results.All(r => r.IsSuccess) }); } }
public bool RunAllTestsInTypeUsingXunit(Type typeToRunTestsFrom) { new { typeToRunTestsFrom }.Must().NotBeNull(); var typeNameToRunTestsFrom = typeToRunTestsFrom.FullName; var testAssemblyPath = typeToRunTestsFrom.Assembly.GetCodeBaseAsPathInsteadOfUri(); using (var runner = AssemblyRunner.WithAppDomain(testAssemblyPath)) { runner.OnDiscoveryComplete = this.OnDiscoveryComplete; runner.OnTestOutput = this.OnTestOutput; runner.OnTestPassed = this.OnTestPassed; runner.OnTestFailed = this.OnTestFailed; runner.OnTestSkipped = this.OnTestSkipped; runner.OnExecutionComplete = this.OnExecutionComplete; lock (this.announcementLock) { this.announcer(" * Discovering tests in type."); } runner.Start(typeNameToRunTestsFrom); this.finished.WaitOne(); this.finished.Dispose(); return(!this.seenFailures); } }
static void Main(string[] args) { if (args.Length == 0 || args.Length > 2) { Console.WriteLine("usage: TestRunner <assembly> [typeName]"); } //var testAssembly = args[0]; var testAssembly = System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName; var typeName = args.Length == 2 ? args[1] : null; using (var runner = AssemblyRunner.WithAppDomain(testAssembly)) { runner.OnDiscoveryComplete = OnDiscoveryComplete; runner.OnExecutionComplete = OnExecutionComplete; runner.OnTestFailed = OnTestFailed; runner.OnTestSkipped = OnTestSkipped; runner.OnTestFinished = OnTestFinished; runner.OnTestPassed = OnTestPassed; Console.WriteLine("Discovering..."); runner.Start(typeName); finished.WaitOne(); finished.Dispose(); Console.WriteLine(result); } }
protected override TestExecutionResults ExecuteImpl(string testModule, IEnumerable <IMemberDefinition> testsToRun, string[] args) { if (!testsToRun.Any()) { // discovery cannot be done // When running with empty list of tests XUnit hangs return(new TestExecutionResults()); } executedTests.Clear(); this.testsToRun = testsToRun; executionCanceled = false; result = new TestExecutionResults(); runner = AssemblyRunner.WithAppDomain(testModule); logger.Debug($"Running XUnit executor in App domain: {AppDomain.CurrentDomain.FriendlyName}"); runner.TestCaseFilter = TestCaseFilterHandler; runner.OnExecutionComplete = ExecutionCompleteHandler; runner.OnTestFailed = TestFailedHandler; runner.OnTestFinished += TestFinishedHandler; runner.OnDiscoveryComplete += DiscoveryCompleteHandler; runner.OnErrorMessage += ErrorMessageHandler; logger.Debug("Starting tests"); runner.Start(maxParallelThreads: 1); finished.WaitOne(); finished.Dispose(); while (runner.Status != AssemblyRunnerStatus.Idle && !executionCanceled) { // spin until runner finishes } if (executionCanceled) { try { runner.Dispose(); } catch (InvalidOperationException e) { // for now ignore this exception // due to XUnit bug of not resetting Status to Idle when cancelling run } } else { runner.Dispose(); } var temp = result; // reset result variable result = null; return(temp); }
static int Main() { using (var runner = AssemblyRunner.WithAppDomain(typeof(Tests.BaseTests).Assembly.Location)) { runner.OnDiscoveryComplete = OnDiscoveryComplete; runner.OnExecutionComplete = OnExecutionComplete; runner.OnTestFailed = OnTestFailed; runner.OnTestSkipped = OnTestSkipped; Console.WriteLine("Discovering..."); //runner.Start(typeof(Tests.IntTests).FullName); //Finished.WaitOne(); //Finished.Reset(); //runner.Start(typeof(Tests.StringTests).FullName); //Finished.WaitOne(); //Finished.Reset(); //runner.Start(typeof(Tests.ObjectTests).FullName); //Finished.WaitOne(); //Finished.Reset(); //runner.Start(typeof(Tests.UIntTests).FullName); //Finished.WaitOne(); //Finished.Reset(); //runner.Start(typeof(Tests.DoubleTests).FullName); //Finished.WaitOne(); //Finished.Reset(); //runner.Start(typeof(Tests.BoolTests).FullName); //Finished.WaitOne(); //Finished.Reset(); //runner.Start(typeof(Tests.DateTimeTests).FullName); //Finished.WaitOne(); Finished.Reset(); runner.Start(typeof(Tests.CharTests).FullName); Finished.WaitOne(); Finished.Dispose(); return(_result); } }
static void Main(string[] args) { var assembly = Assembly.LoadFrom("AzureDistributedTesting.dll"); using (var runner = AssemblyRunner.WithAppDomain(assembly.Location)) { runner.OnDiscoveryComplete = OnDiscoveryComplete; runner.OnExecutionComplete = OnExecutionComplete; runner.OnTestFailed = OnTestFailed; runner.OnTestSkipped = OnTestSkipped; runner.OnErrorMessage = OnErrorMessage; runner.OnTestPassed = OnTestPassed; Console.WriteLine("Discovering..."); runner.Start(); Console.ReadLine(); } }
public static void Run([QueueTrigger("queue-with-tests", Connection = "storage_Conn")] TestTypeInfo myQueueItem, [Table(tableName: "TestResults", Connection = "storage_Conn")] ICollector <TestResult> outputTable, TraceWriter log) { AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve; ManualResetEvent executionManualResetEvent = new ManualResetEvent(false); var resultProxy = new ResultProxy(outputTable, myQueueItem); var runner = AssemblyRunner.WithAppDomain(myQueueItem.DllPath); runner.OnTestFailed += resultProxy.OnTestFailed; runner.OnTestPassed += resultProxy.OnTestPassed; runner.OnTestSkipped += resultProxy.OnTestSkipped; runner.OnExecutionComplete = info => { executionManualResetEvent.Set(); }; runner.OnErrorMessage = info => { executionManualResetEvent.Set(); }; runner.Start(myQueueItem.TypeName); executionManualResetEvent.WaitOne(); executionManualResetEvent.Dispose(); while (runner.Status != AssemblyRunnerStatus.Idle) // because of https://github.com/xunit/xunit/issues/1347 { Thread.Sleep(10); } runner.Dispose(); }
public void Start() { if (this.settingEnv.NewMDFile) { if (File.Exists(this.settingEnv.MDFile)) { File.Delete(this.settingEnv.MDFile); } } // foreach (String assembly in settingEnv.Assemblies) { // The next Assembly to test is string testAssembly = Path.Combine(settingEnv.Path, assembly); if (File.Exists(testAssembly)) { finished.Reset(); // Create lists failed = new List <string>(); passed = new List <string>(); using (var runner = AssemblyRunner.WithAppDomain(testAssembly)) { runner.OnExecutionComplete = OnExecutionComplete; runner.OnTestFailed = OnTestFailed; runner.OnTestPassed = OnTestPassed; if (settingEnv.Console) { Console.WriteLine("Running..."); } runner.Start(); finished.WaitOne(); // Now generate Result file this.build_Vagrant(testAssembly); if (settingEnv.Details) { this.generateMD(testAssembly); } // .... } } else { TestData_Vagrant vagrant = new TestData_Vagrant(); vagrant.TestAssembly = Path.GetFileName(testAssembly); vagrant.Result = "File Not Found"; // testData_Vagrant.Add(vagrant); // if (settingEnv.Console) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Assembly not Found : {0}", testAssembly); Console.ResetColor(); } } } this.generateMD_Vagrant(); finished.Dispose(); }