public BinaryOperationFixtureFilterBase( IFixtureFilter left, IFixtureFilter right) { this.left = left; this.right = right; }
public void SetFixtureFilter(IFixtureFilter filter) { foreach (TestDomainVertex v in this.graph.Vertices) { v.Domain.Filter = filter; } }
public int Main() { consoleOut.WriteLine("Start time: {0}", DateTime.Now.ToShortTimeString()); // add path foreach (string assemblyPath in this.Arguments.AssemblyPath) { this.resolver.AddHintDirectory(assemblyPath); } // store real console listener.Writer = Console.Out; timer.Start(); try { ReportResult result = new ReportResult(); IFixtureFilter filter = arguments.GetFilter(); if (this.Arguments.Files.Length == 0) { consoleOut.WriteLine("[warning] No test assemblies to execute"); } else { consoleOut.WriteLine("[info] Loading test assemblies"); using ( TestDomainDependencyGraph graph = TestDomainDependencyGraph.BuildGraph( this.Arguments.Files, this.Arguments.AssemblyPath, filter, this.Arguments.Verbose)) { //define an assembly resolver routine in case the CLR cannot find our assemblies. AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(AssemblyResolveHandler); graph.Log += new ErrorReporter(graph_Log); consoleOut.WriteLine("[info] Starting execution"); ReportResult r = graph.RunTests(); graph.Log -= new ErrorReporter(graph_Log); result.Merge(r); } } this.GenerateReport(arguments, result); timer.Stop(); consoleOut.WriteLine("[info] MbUnit execution finished in {0}s.", timer.Duration); return((0 == result.Counter.FailureCount) ? 0 : -1); } catch (System.Runtime.Remoting.RemotingException remote) { consoleOut.WriteLine("Could not load test domain. Please ensure you have referenced the installed version of MbUnit.Framework within your test assembly. \r\n The error message was: \r\n" + remote.Message); return(-3); } catch (Exception ex) { consoleOut.WriteLine(ex.ToString()); return(-3); } }
protected TestRunState Run( ITestListener testListener, Assembly assembly, IFixtureFilter filter ) { return(Run(testListener, assembly, filter, new AnyRunPipeFilter(), TypeFilters.Any)); }
public static TestDomainDependencyGraph BuildGraph( string[] testAssemblies, string[] assemblyPaths, IFixtureFilter fixtureFilter, bool verbose ) { // MLS 12/21/05 - adding verbose parameter to fix MBUNIT-28 (verbose command line option not working). // IDEA: A more flexible solution might be to pass in a collection of IRunPipeListeners. return(BuildGraph(testAssemblies, assemblyPaths, fixtureFilter, new AnyRunPipeFilter(), verbose)); }
public void FilterWithNullType(IFixtureFilter filter) { filter.Filter(null); }
public void Filter(IFixtureFilter filter) { filter.Filter(typeof(DummyFixture)); }
public void Serialize(IFixtureFilter filter) { Console.WriteLine(SerialAssert.OneWaySerialization(filter)); }
public AndFixtureFilter( IFixtureFilter left, IFixtureFilter right) : base(left, right) { }
protected TestRunState Run( ITestListener testListener, Assembly assembly, IFixtureFilter filter, RunPipeFilterBase runPipeFilter, TypeFilterBase typeFilter ) { this.testListener = testListener; if (!CheckMbUnitVersion(assembly)) { return TestRunState.Error; } assemblySetUpCount = 0; assemblyTearDownCount = 0; testFixtureSetUpCount = 0; testFixtureTearDownCount = 0; failureCount = 0; successCount = 0; ignoreCount = 0; skipCount = 0; string assemblyPath = new Uri(assembly.CodeBase).LocalPath; testListener.WriteLine("Starting the MbUnit Test Execution", Category.Info); testListener.WriteLine("Exploring " + assembly.FullName, Category.Info); testListener.WriteLine(String.Format("MbUnit {0} Addin", typeof(RunPipe).Assembly.GetName().Version),Category.Info); try { using (AssemblyTestDomain domain = new AssemblyTestDomain(assembly)) { //define an assembly resolver routine in case the CLR cannot find our assemblies. AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(AssemblyResolveHandler); domain.TypeFilter = typeFilter; domain.Filter = filter; domain.RunPipeFilter = runPipeFilter; domain.Load(); // check found tests testCount = domain.TestEngine.GetTestCount().RunCount; if (testCount == 0) { testListener.WriteLine("No tests found", Category.Info); return TestRunState.NoTests; } testListener.WriteLine(String.Format("Found {0} tests", testCount), Category.Info); // add listeners domain.TestEngine.FixtureRunner.AssemblySetUp += new ReportSetUpAndTearDownEventHandler(TestEngine_AssemblySetUp); domain.TestEngine.FixtureRunner.AssemblyTearDown += new ReportSetUpAndTearDownEventHandler(TestEngine_AssemblyTearDown); domain.TestEngine.FixtureRunner.TestFixtureSetUp += new ReportSetUpAndTearDownEventHandler(TestEngine_TestFixtureSetUp); domain.TestEngine.FixtureRunner.TestFixtureTearDown += new ReportSetUpAndTearDownEventHandler(TestEngine_TestFixtureTearDown); domain.TestEngine.FixtureRunner.RunResult += new ReportRunEventHandler(TestEngine_RunResult); try { domain.TestEngine.RunPipes(); } finally { if (domain.TestEngine != null) { domain.TestEngine.FixtureRunner.AssemblySetUp -= new ReportSetUpAndTearDownEventHandler(TestEngine_AssemblySetUp); domain.TestEngine.FixtureRunner.AssemblyTearDown -= new ReportSetUpAndTearDownEventHandler(TestEngine_AssemblyTearDown); domain.TestEngine.FixtureRunner.TestFixtureSetUp -= new ReportSetUpAndTearDownEventHandler(TestEngine_TestFixtureSetUp); domain.TestEngine.FixtureRunner.TestFixtureTearDown -= new ReportSetUpAndTearDownEventHandler(TestEngine_TestFixtureTearDown); domain.TestEngine.FixtureRunner.RunResult -= new ReportRunEventHandler(TestEngine_RunResult); } } testListener.WriteLine("[reports] generating HTML report", Category.Info); this.GenerateReports(testListener, assembly, domain.TestEngine.Report.Result); return toTestRunState(domain.TestEngine.Report.Result); } } catch (Exception ex) { testListener.WriteLine("[critical-failure]", Category.Error); testListener.WriteLine(ex.ToString(), Category.Error); throw new Exception("Test execution failed", ex); } }
public static TestDomainDependencyGraph BuildGraph( string[] testAssemblies, string[] assemblyPaths, IFixtureFilter fixtureFilter, bool verbose ) { // MLS 12/21/05 - adding verbose parameter to fix MBUNIT-28 (verbose command line option not working). // IDEA: A more flexible solution might be to pass in a collection of IRunPipeListeners. return BuildGraph(testAssemblies, assemblyPaths, fixtureFilter, new AnyRunPipeFilter(), verbose); }
public static TestDomainDependencyGraph BuildGraph( string[] testAssemblies, string[] assemblyPaths, IFixtureFilter fixtureFilter, IRunPipeFilter runPipeFilter, bool verbose ) { // MLS 12/21/05 - adding verbose parameter to fix MBUNIT-28 (verbose command line option not working). // IDEA: A more flexible solution might be to pass in a collection of IRunPipeListeners. if (testAssemblies == null) throw new ArgumentNullException("testAssemblies"); if (testAssemblies.Length == 0) throw new ArgumentException("No assembly to test"); if (fixtureFilter == null) throw new ArgumentNullException("fixtureFilter"); if (runPipeFilter == null) throw new ArgumentNullException("runPipeFilter"); Hashtable loadedAssemblies = new Hashtable(); TestDomainDependencyGraph graph = null; try { graph = new TestDomainDependencyGraph(); graph.verbose = verbose; if (assemblyPaths != null) graph.AssemblyPaths.AddRange(assemblyPaths); foreach (string testAssembly in testAssemblies) { if (loadedAssemblies.Contains(testAssembly)) continue; TestDomain domain = new TestDomain(testAssembly); domain.Filter = fixtureFilter; domain.RunPipeFilter = runPipeFilter; graph.AddDomain(domain); loadedAssemblies.Add(testAssembly, null); } graph.CreateDependencies(); return graph; } catch(Exception ex) { if (graph != null) { graph.Dispose(); graph = null; } throw new ApplicationException("Failed loading assemblies", ex); } }
public FixtureSpec_CanRun() { Fixture = TestFixtures.CreateFixture <TestFixtures.SimpleFixture>("FixtureMethod"); Filter = Substitute.For <IFixtureFilter>(); }
public static TestDomainDependencyGraph BuildGraph( string[] testAssemblies, string[] assemblyPaths, IFixtureFilter fixtureFilter, IRunPipeFilter runPipeFilter, bool verbose ) { // MLS 12/21/05 - adding verbose parameter to fix MBUNIT-28 (verbose command line option not working). // IDEA: A more flexible solution might be to pass in a collection of IRunPipeListeners. if (testAssemblies == null) { throw new ArgumentNullException("testAssemblies"); } if (testAssemblies.Length == 0) { throw new ArgumentException("No assembly to test"); } if (fixtureFilter == null) { throw new ArgumentNullException("fixtureFilter"); } if (runPipeFilter == null) { throw new ArgumentNullException("runPipeFilter"); } Hashtable loadedAssemblies = new Hashtable(); TestDomainDependencyGraph graph = null; try { graph = new TestDomainDependencyGraph(); graph.verbose = verbose; if (assemblyPaths != null) { graph.AssemblyPaths.AddRange(assemblyPaths); } foreach (string testAssembly in testAssemblies) { if (testAssembly.EndsWith(".mbunit")) { MbUnitProject project = MbUnitProject.Load(testAssembly); foreach (string assembly in project.Assemblies) { if (loadedAssemblies.Contains(assembly)) { continue; } TestDomain domain = new TestDomain(assembly); domain.Filter = fixtureFilter; domain.RunPipeFilter = runPipeFilter; graph.AddDomain(domain); loadedAssemblies.Add(assembly, null); } } else { if (loadedAssemblies.Contains(testAssembly)) { continue; } TestDomain domain = new TestDomain(testAssembly); domain.Filter = fixtureFilter; domain.RunPipeFilter = runPipeFilter; graph.AddDomain(domain); loadedAssemblies.Add(testAssembly, null); } } graph.CreateDependencies(); return(graph); } catch (System.Runtime.Remoting.RemotingException remote) { throw remote; } catch (Exception ex) { if (graph != null) { graph.Dispose(); graph = null; } throw new ApplicationException("Failed loading assemblies", ex); } }
public FixtureContainerSpec_CanRun() { Container = new FixtureContainer(typeof(TestFixtures.SimpleFixture)); Filter = Substitute.For <IFixtureFilter>(); }
public IFixtureFilter GetFixtureFilter() { IFixtureFilter filter = null; if (this.FixtureFilters.Count != 0) { filter = new ScopeFixtureFilter(this.FixtureFilters); } if (this.Categories.Count != 0) { if (filter == null) { filter = new CategoryFixtureFilter(this.Categories); } else { filter = new AndFixtureFilter( filter, new CategoryFixtureFilter(this.Categories) ); } } if (this.RunFailures.Count != 0) { foreach (string runFailureReport in this.RunFailures) { if (!File.Exists(runFailureReport)) { throw new ArgumentException("Could not find failure file " + runFailureReport); } XmlTestBatch testBatch = UnitSerializer.Deserialize(runFailureReport); if (testBatch != null) { FailureFilter failureFilter = new FailureFilter(testBatch); if (filter == null) { filter = failureFilter; } else { filter = new AndFixtureFilter(filter, failureFilter); } } } } if (this.UseCurrentFixtures) { if (filter == null) { filter = new CurrentFixtureFilter(); } else { filter = new AndFixtureFilter(filter, new CurrentFixtureFilter()); } } if (filter == null) { filter = new AnyFixtureFilter(); } return(filter); }
public void IsXmlSerializable(IFixtureFilter filter) { SerialAssert.IsXmlSerializable(filter.GetType()); }
public void Filter(IFixtureFilter filter) { Assert.IsTrue(filter.Filter(typeof(DummyFixture))); }
protected TestRunState Run( ITestListener testListener, Assembly assembly, IFixtureFilter filter, RunPipeFilterBase runPipeFilter, TypeFilterBase typeFilter ) { this.testListener = testListener; if (!CheckMbUnitVersion(assembly)) { return(TestRunState.Error); } assemblySetUpCount = 0; assemblyTearDownCount = 0; testFixtureSetUpCount = 0; testFixtureTearDownCount = 0; failureCount = 0; successCount = 0; ignoreCount = 0; skipCount = 0; string assemblyPath = new Uri(assembly.CodeBase).LocalPath; testListener.WriteLine("Starting the MbUnit Test Execution", Category.Info); testListener.WriteLine("Exploring " + assembly.FullName, Category.Info); testListener.WriteLine(String.Format("MbUnit {0} Addin", typeof(RunPipe).Assembly.GetName().Version), Category.Info); try { using (AssemblyTestDomain domain = new AssemblyTestDomain(assembly)) { //define an assembly resolver routine in case the CLR cannot find our assemblies. AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(AssemblyResolveHandler); domain.TypeFilter = typeFilter; domain.Filter = filter; domain.RunPipeFilter = runPipeFilter; domain.Load(); // check found tests testCount = domain.TestEngine.GetTestCount().RunCount; if (testCount == 0) { testListener.WriteLine("No tests found", Category.Info); return(TestRunState.NoTests); } testListener.WriteLine(String.Format("Found {0} tests", testCount), Category.Info); // add listeners domain.TestEngine.FixtureRunner.AssemblySetUp += new ReportSetUpAndTearDownEventHandler(TestEngine_AssemblySetUp); domain.TestEngine.FixtureRunner.AssemblyTearDown += new ReportSetUpAndTearDownEventHandler(TestEngine_AssemblyTearDown); domain.TestEngine.FixtureRunner.TestFixtureSetUp += new ReportSetUpAndTearDownEventHandler(TestEngine_TestFixtureSetUp); domain.TestEngine.FixtureRunner.TestFixtureTearDown += new ReportSetUpAndTearDownEventHandler(TestEngine_TestFixtureTearDown); domain.TestEngine.FixtureRunner.RunResult += new ReportRunEventHandler(TestEngine_RunResult); try { domain.TestEngine.RunPipes(); } finally { if (domain.TestEngine != null) { domain.TestEngine.FixtureRunner.AssemblySetUp -= new ReportSetUpAndTearDownEventHandler(TestEngine_AssemblySetUp); domain.TestEngine.FixtureRunner.AssemblyTearDown -= new ReportSetUpAndTearDownEventHandler(TestEngine_AssemblyTearDown); domain.TestEngine.FixtureRunner.TestFixtureSetUp -= new ReportSetUpAndTearDownEventHandler(TestEngine_TestFixtureSetUp); domain.TestEngine.FixtureRunner.TestFixtureTearDown -= new ReportSetUpAndTearDownEventHandler(TestEngine_TestFixtureTearDown); domain.TestEngine.FixtureRunner.RunResult -= new ReportRunEventHandler(TestEngine_RunResult); } } testListener.WriteLine("[reports] generating HTML report", Category.Info); this.GenerateReports(testListener, assembly, domain.TestEngine.Report.Result); return(toTestRunState(domain.TestEngine.Report.Result)); } } catch (Exception ex) { testListener.WriteLine("[critical-failure]", Category.Error); testListener.WriteLine(ex.ToString(), Category.Error); throw new Exception("Test execution failed", ex); } }
public void SetFixtureFilter(IFixtureFilter filter) { foreach (TestDomainVertex v in this.graph.Vertices) v.Domain.Filter = filter; }
protected TestRunState Run( ITestListener testListener, Assembly assembly, IFixtureFilter filter ) { return Run(testListener,assembly,filter, new AnyRunPipeFilter(), TypeFilters.Any); }