public void DiscoverTestsFromMultipleSources() { const string boostFixtureTestSuiteSource = "BoostFixtureTestSuite.boostd.exe"; const string boostUnitTestSampleSource = "BoostUnitTestSample.boostd.exe"; using (DummySourceFile boostFixtureTestSuiteCodeFile = new DummySourceFile(BoostFixtureTestSuite)) using (DummySourceFile boostFixtureTestCaseCodeFile = new DummySourceFile(BoostFixtureTestCase)) using (DummySourceFile boostUnitTestSampleSourceCodeFile = new DummySourceFile(BoostUnitTestSample)) { IVisualStudio vs = new FakeVisualStudioInstanceBuilder(). Solution( new FakeSolutionBuilder(). Name("SampleSolution"). Project( new FakeProjectBuilder(). Name("FixtureSampleProject"). PrimaryOutput(boostFixtureTestSuiteSource). Sources( new List <string>() { boostFixtureTestSuiteCodeFile.Path, boostFixtureTestCaseCodeFile.Path }) ). Project( new FakeProjectBuilder(). Name("SampleProject"). PrimaryOutput(boostUnitTestSampleSource). Sources( new List <string>() { boostUnitTestSampleSourceCodeFile.Path, }) ) ).Build(); IEnumerable <VSTestCase> vsTests = Discover(new DummyVSProvider(vs), new string[] { boostFixtureTestSuiteSource, boostUnitTestSampleSource }); Assert.That(vsTests.Count(), Is.EqualTo(17)); AssertBoostFixtureTestSuiteTestDetails(vsTests, boostFixtureTestSuiteSource, boostFixtureTestSuiteCodeFile.Path); AssertBoostFixtureTestCaseTestDetails(vsTests, boostFixtureTestSuiteSource, boostFixtureTestCaseCodeFile.Path); AssertBoostUnitTestSampleTestDetails(vsTests, boostUnitTestSampleSource, boostUnitTestSampleSourceCodeFile.Path); } }
private void AssertBoostUnitTestSampleRequiringUseOfFilters(IEnumerable <VSTestCase> tests, DummySolution solution) { DummySourceFile codeFile = solution.SourceFileResourcePaths.First((source) => source.Path.EndsWith(BoostUnitTestSampleRequiringUseOfFilters)); AssertBoostUnitTestSampleRequiringUseOfFilters(tests, solution.Source, codeFile.Path); }
/// <summary> /// Asserts test details for tests contained within the "BoostFixtureTestSuite.cpp" source file /// </summary> /// <param name="tests">The discovered test case enumeration</param> /// <param name="solution">The dummy solution which contains a project referencing "BoostFixtureTestSuite.cpp"</param> private void AssertBoostFixtureTestSuiteTestDetails(IEnumerable <VSTestCase> tests, DummySolution solution) { DummySourceFile codeFile = solution.SourceFileResourcePaths.First((source) => source.Path.EndsWith(BoostFixtureTestSuite)); AssertBoostFixtureTestSuiteTestDetails(tests, solution.Source, codeFile.Path); }