public void Can_Union_Test_Results() { var resultSetOne = new TestResults(); var testA = new TestResult("My Special Test A", TestResultKind.Passed); resultSetOne.AddTest(testA); var testB = new TestResult("My Special Test B", TestResultKind.Failure); testB.StackTrace = "Special stack trace"; resultSetOne.AddTest(testB); var testC = new TestResult("My Special Test C", TestResultKind.Skipped); resultSetOne.AddTest(testC); var resultSetTwo = new TestResults(); var dummyTestA = new TestResult("", TestResultKind.Passed); resultSetTwo.AddTest(dummyTestA); var dummyTestB = new TestResult("My Special Test B", TestResultKind.Failure); resultSetTwo.AddTest(dummyTestB); var dummyTestC = new TestResult("", TestResultKind.Inconclusive); resultSetTwo.AddTest(dummyTestC); resultSetOne.Merge(resultSetTwo); Assert.That(resultSetOne != null); var tests = resultSetOne.GetTests().ToList(); Assert.That(tests.Count == 4); var firstTest = tests[0]; Assert.That(firstTest.Name == testA.Name); Assert.That(firstTest.Kind == testA.Kind); var secondTest = tests[1]; Assert.That(secondTest.Name == testB.Name); Assert.That(secondTest.Kind == testB.Kind); Assert.That(secondTest.StackTrace == testB.StackTrace); var thirdTest = tests[2]; Assert.That(thirdTest.Name == testC.Name); Assert.That(thirdTest.Kind == testC.Kind); var fourthTest = tests[3]; Assert.That(fourthTest.Name == dummyTestC.Name); Assert.That(fourthTest.Kind == dummyTestC.Kind); }