public static void Default() { var runner = TestableXunitTestAssemblyRunner.Create(); var result = runner.GetTestFrameworkEnvironment(); Assert.EndsWith("[collection-per-class, parallel]", result); }
public static void IsXunit() { var runner = TestableXunitTestAssemblyRunner.Create(); var result = runner.GetTestFrameworkDisplayName(); Assert.StartsWith("xUnit.net ", result); }
public static async ValueTask Default() { await using var runner = TestableXunitTestAssemblyRunner.Create(); var result = runner.GetTestFrameworkEnvironment(); Assert.EndsWith($"[collection-per-class, parallel ({Environment.ProcessorCount} threads)]", result); }
public static async ValueTask IsXunit() { await using var runner = TestableXunitTestAssemblyRunner.Create(); var result = runner.GetTestFrameworkDisplayName(); Assert.StartsWith("xUnit.net ", result); }
public static void CanSetTestCollectionOrdererInAssemblyAttribute() { var ordererAttribute = Mocks.TestCollectionOrdererAttribute <MyTestCollectionOrderer>(); var assembly = Mocks.TestAssembly(new[] { ordererAttribute }); var runner = TestableXunitTestAssemblyRunner.Create(assembly: assembly); runner.Initialize(); Assert.IsType <MyTestCollectionOrderer>(runner.TestCollectionOrderer); }
public static void Attribute_NonParallel() { var attribute = Mocks.CollectionBehaviorAttribute(disableTestParallelization: true); var assembly = Mocks.TestAssembly(new[] { attribute }); var runner = TestableXunitTestAssemblyRunner.Create(assembly: assembly); var result = runner.GetTestFrameworkEnvironment(); Assert.EndsWith("[collection-per-class, non-parallel]", result); }
public static void Attribute_MaxThreads() { var attribute = Mocks.CollectionBehaviorAttribute(maxParallelThreads: 3); var assembly = Mocks.TestAssembly(new[] { attribute }); var runner = TestableXunitTestAssemblyRunner.Create(assembly: assembly); var result = runner.GetTestFrameworkEnvironment(); Assert.EndsWith("[collection-per-class, parallel (3 threads)]", result); }
public static void Attribute_CollectionBehavior(CollectionBehavior behavior, string expectedDisplayText) { var attribute = Mocks.CollectionBehaviorAttribute(behavior, disableTestParallelization: true); var assembly = Mocks.TestAssembly(new[] { attribute }); var runner = TestableXunitTestAssemblyRunner.Create(assembly: assembly); var result = runner.GetTestFrameworkEnvironment(); Assert.EndsWith(string.Format("[{0}, non-parallel]", expectedDisplayText), result); }
public static void TestOptions_NonParallel() { var options = TestFrameworkOptions.ForExecution(); options.SetDisableParallelization(true); var runner = TestableXunitTestAssemblyRunner.Create(executionOptions: options); var result = runner.GetTestFrameworkEnvironment(); Assert.EndsWith("[collection-per-class, non-parallel]", result); }
public static async ValueTask Attribute_Unlimited() { var attribute = Mocks.CollectionBehaviorAttribute(maxParallelThreads: -1); var assembly = Mocks.TestAssembly("assembly.dll", assemblyAttributes: new[] { attribute }); await using var runner = TestableXunitTestAssemblyRunner.Create(assembly: assembly); var result = runner.GetTestFrameworkEnvironment(); Assert.EndsWith("[collection-per-class, parallel (unlimited threads)]", result); }
public static async ValueTask CanSetTestCollectionOrdererInAssemblyAttribute() { var ordererAttribute = Mocks.TestCollectionOrdererAttribute <MyTestCollectionOrderer>(); var assembly = Mocks.TestAssembly("assembly.dll", assemblyAttributes: new[] { ordererAttribute }); await using var runner = TestableXunitTestAssemblyRunner.Create(assembly: assembly); runner.Initialize(); Assert.IsType <MyTestCollectionOrderer>(runner.TestCollectionOrderer); }
public static async ValueTask TestOptions_Unlimited() { var options = _TestFrameworkOptions.ForExecution(); options.SetMaxParallelThreads(-1); await using var runner = TestableXunitTestAssemblyRunner.Create(executionOptions: options); var result = runner.GetTestFrameworkEnvironment(); Assert.EndsWith("[collection-per-class, parallel (unlimited threads)]", result); }
public static void TestOptions_MaxThreads() { var options = TestFrameworkOptions.ForExecution(); options.SetMaxParallelThreads(3); var runner = TestableXunitTestAssemblyRunner.Create(executionOptions: options); var result = runner.GetTestFrameworkEnvironment(); Assert.EndsWith("[collection-per-class, parallel (3 threads)]", result); }
public static async ValueTask Attribute_CollectionBehavior(CollectionBehavior behavior, string expectedDisplayText) { var attribute = Mocks.CollectionBehaviorAttribute(behavior, disableTestParallelization: true); var assembly = Mocks.TestAssembly("assembly.dll", assemblyAttributes: new[] { attribute }); await using var runner = TestableXunitTestAssemblyRunner.Create(assembly: assembly); var result = runner.GetTestFrameworkEnvironment(); Assert.EndsWith($"[{expectedDisplayText}, non-parallel]", result); }
public static void Attribute_CustomCollectionFactory() { var factoryType = typeof(MyTestCollectionFactory); var attr = Mocks.CollectionBehaviorAttribute(factoryType.FullName, factoryType.Assembly.FullName, disableTestParallelization: true); var assembly = Mocks.TestAssembly(new[] { attr }); var runner = TestableXunitTestAssemblyRunner.Create(assembly: assembly); var result = runner.GetTestFrameworkEnvironment(); Assert.EndsWith("[My Factory, non-parallel]", result); }
public static void TestOptions_MaxThreads() { var options = new XunitExecutionOptions { MaxParallelThreads = 255 }; var runner = TestableXunitTestAssemblyRunner.Create(options: options); var result = runner.GetTestFrameworkEnvironment(); Assert.EndsWith("[collection-per-class, parallel (255 threads)]", result); }
public static void SettingTestCollectionOrdererWithThrowingConstructorLogsDiagnosticMessage() { var ordererAttribute = Mocks.TestCollectionOrdererAttribute <MyCtorThrowingTestCollectionOrderer>(); var assembly = Mocks.TestAssembly(new[] { ordererAttribute }); var runner = TestableXunitTestAssemblyRunner.Create(assembly: assembly); runner.Initialize(); Assert.IsType <DefaultTestCaseOrderer>(runner.TestCaseOrderer); var diagnosticMessage = Assert.Single(runner.DiagnosticMessages.Cast <IDiagnosticMessage>()); Assert.StartsWith("Assembly-level test collection orderer 'XunitTestAssemblyRunnerTests+TestCollectionOrderer+MyCtorThrowingTestCollectionOrderer' threw 'System.DivideByZeroException' during construction:", diagnosticMessage.Message); }
public static void SettingUnknownTestCollectionOrderLogsDiagnosticMessage() { var ordererAttribute = Mocks.TestCollectionOrdererAttribute("UnknownType", "UnknownAssembly"); var assembly = Mocks.TestAssembly(new[] { ordererAttribute }); var runner = TestableXunitTestAssemblyRunner.Create(assembly: assembly); runner.Initialize(); Assert.IsType <DefaultTestCollectionOrderer>(runner.TestCollectionOrderer); var diagnosticMessage = Assert.Single(runner.DiagnosticMessages.Cast <IDiagnosticMessage>()); Assert.Equal("Could not find type 'UnknownType' in UnknownAssembly for assembly-level test collection orderer", diagnosticMessage.Message); }
public static void TestOptionsOverrideAttribute() { var attribute = Mocks.CollectionBehaviorAttribute(disableTestParallelization: true, maxParallelThreads: 127); var options = new XunitExecutionOptions { DisableParallelization = false, MaxParallelThreads = 3 }; var assembly = Mocks.TestAssembly(new[] { attribute }); var runner = TestableXunitTestAssemblyRunner.Create(assembly: assembly, options: options); var result = runner.GetTestFrameworkEnvironment(); Assert.EndsWith("[collection-per-class, parallel (3 threads)]", result); }
public static async ValueTask SettingUnknownTestCaseOrderLogsDiagnosticMessage() { var ordererAttribute = Mocks.TestCaseOrdererAttribute("UnknownType", "UnknownAssembly"); var assembly = Mocks.TestAssembly("assembly.dll", assemblyAttributes: new[] { ordererAttribute }); await using var runner = TestableXunitTestAssemblyRunner.Create(assembly: assembly); runner.Initialize(); Assert.IsType <DefaultTestCaseOrderer>(runner.TestCaseOrderer); var diagnosticMessage = Assert.Single(runner.DiagnosticMessages.Cast <_DiagnosticMessage>()); Assert.Equal("Could not find type 'UnknownType' in UnknownAssembly for assembly-level test case orderer", diagnosticMessage.Message); }
public static async ValueTask SettingTestCaseOrdererWithThrowingConstructorLogsDiagnosticMessage() { var ordererAttribute = Mocks.TestCaseOrdererAttribute <MyCtorThrowingTestCaseOrderer>(); var assembly = Mocks.TestAssembly("assembly.dll", assemblyAttributes: new[] { ordererAttribute }); await using var runner = TestableXunitTestAssemblyRunner.Create(assembly: assembly); runner.Initialize(); Assert.IsType <DefaultTestCaseOrderer>(runner.TestCaseOrderer); var diagnosticMessage = Assert.Single(runner.DiagnosticMessages.Cast <_DiagnosticMessage>()); Assert.StartsWith("Assembly-level test case orderer 'XunitTestAssemblyRunnerTests+TestCaseOrderer+MyCtorThrowingTestCaseOrderer' threw 'System.DivideByZeroException' during construction: Attempted to divide by zero.", diagnosticMessage.Message); }
public static async void Parallel_SingleThread() { var passing = Mocks.XunitTestCase <ClassUnderTest>("Passing"); var other = Mocks.XunitTestCase <ClassUnderTest>("Other"); var options = new XunitExecutionOptions { MaxParallelThreads = 1 }; var runner = TestableXunitTestAssemblyRunner.Create(testCases: new[] { passing, other }, options: options); await runner.RunAsync(); var threadIDs = runner.TestCasesRun.Select(x => x.Item1).ToList(); Assert.Equal(threadIDs[0], threadIDs[1]); }
public static async ValueTask TestOptionsOverrideAttribute() { var attribute = Mocks.CollectionBehaviorAttribute(disableTestParallelization: true, maxParallelThreads: 127); var options = _TestFrameworkOptions.ForExecution(); options.SetDisableParallelization(false); options.SetMaxParallelThreads(3); var assembly = Mocks.TestAssembly("assembly.dll", assemblyAttributes: new[] { attribute }); await using var runner = TestableXunitTestAssemblyRunner.Create(assembly: assembly, executionOptions: options); var result = runner.GetTestFrameworkEnvironment(); Assert.EndsWith("[collection-per-class, parallel (3 threads)]", result); }
public static async ValueTask Parallel_SingleThread() { var passing = TestData.XunitTestCase <ClassUnderTest>("Passing"); var other = TestData.XunitTestCase <ClassUnderTest>("Other"); var options = _TestFrameworkOptions.ForExecution(); options.SetMaxParallelThreads(1); await using var runner = TestableXunitTestAssemblyRunner.Create(testCases: new[] { passing, other }, executionOptions: options); await runner.RunAsync(); var threadIDs = runner.TestCasesRun.Select(x => x.Item1).ToList(); Assert.Equal(threadIDs[0], threadIDs[1]); }
public static async void NonParallel() { var passing = Mocks.XunitTestCase <ClassUnderTest>("Passing"); var other = Mocks.XunitTestCase <ClassUnderTest>("Other"); var options = TestFrameworkOptions.ForExecution(); options.SetDisableParallelization(true); var runner = TestableXunitTestAssemblyRunner.Create(testCases: new[] { passing, other }, executionOptions: options); await runner.RunAsync(); var threadIDs = runner.TestCasesRun.Select(x => x.Item1).ToList(); Assert.Equal(threadIDs[0], threadIDs[1]); }