public void CorrectTestsDiscoveryForFIXTURE_TEST_CASE() { using (DummySolution solution = new DummySolution(DefaultSource, "BoostFixtureTestCase.cpp")) { #region excercise /** The BoostFixtureTestCase.cpp file consists of 4 test cases: BoostUnitTest1, Fixturetest_case1, Fixturetest_case1 and Fixturetest_case1, * BOOST_AUTO_TEST_SUITE -> Suit1 * -->BoostUnitTest1 * -->Fixturetest_case1 * -->Fixturetest_case2 * -> Master Suite * -->Fixturetest_case3 */ IList<TestCase> testList = DiscoverTests(solution); #endregion excercise #region verify AssertTestDetails(testList[0], QualifiedNameBuilder.FromString("Suit1/BoostUnitTest1")); AssertTestDetails(testList[1], QualifiedNameBuilder.FromString("Suit1/Fixturetest_case1")); AssertTestDetails(testList[2], QualifiedNameBuilder.FromString("Suit1/Fixturetest_case2")); AssertTestDetails(testList[3], QualifiedNameBuilder.FromString("Fixturetest_case3")); #endregion verify } }
public void DiscoverTestsFromMultipleFiles() { using (DummySolution solution = new DummySolution(Source, new string[] { BoostFixtureTestSuite, BoostUnitTestSample })) { IEnumerable<VSTestCase> tests = Discover(solution); Assert.That(tests.Count(), Is.EqualTo(13)); AssertBoostFixtureTestSuiteTestDetails(tests, solution); AssertBoostUnitTestSampleTestDetails(tests, solution); } }
/// <summary> /// Applies the discovery process over the provided DummySolution /// </summary> /// <param name="solution">The dummy solution on which to apply test discovery</param> /// <returns>The list of tests which were discovered from the dummy solution</returns> private IList<TestCase> DiscoverTests(DummySolution solution) { SourceCodeDiscoverer discoverer = new SourceCodeDiscoverer(solution.Provider); DefaultTestContext context = new DefaultTestContext(); DefaultTestCaseDiscoverySink discoverySink = new DefaultTestCaseDiscoverySink(); ConsoleMessageLogger logger = new ConsoleMessageLogger(); discoverer.DiscoverTests(new[] { solution.Source }, context, logger, discoverySink); return discoverySink.Tests.ToList(); }
public void DiscoverTests() { using (DummySolution solution = new DummySolution(Source, new string[] { BoostUnitTestSample })) { IEnumerable<VSTestCase> tests = Discover(solution); Assert.That(tests.Count(), Is.EqualTo(6)); AssertBoostUnitTestSampleTestDetails(tests, solution); // NOTE BoostUnitTest123 should not be available since it is commented out Assert.That(tests.Any((test) => test.FullyQualifiedName == "BoostUnitTest123"), Is.False); } }
public void BOOST_DATA_TEST_CASEDiscovery() { using (DummySolution solution = new DummySolution(DefaultSource, "BoostDataTestCase.cpp")) { IList<TestCase> testList = DiscoverTests(solution); Assert.That(testList.Count, Is.EqualTo(3)); AssertTestDetails(testList[0], QualifiedNameBuilder.FromString("data_test_suite/data_1")); AssertTestDetails(testList[1], QualifiedNameBuilder.FromString("data_test_suite/data_2")); AssertTestDetails(testList[2], QualifiedNameBuilder.FromString("data_3")); } }
public void CorrectDiscoveryGenericBoostTests() { using (DummySolution solution = new DummySolution(DefaultSource, "BoostUnitTestSample.cpp")) { #region excercise IList<TestCase> tests = DiscoverTests(solution); #endregion excercise #region verify AssertTestDetails(tests.Last(), QualifiedNameBuilder.FromString("my_test<char>"), solution.SourceFileResourcePaths.First().TempSourcePath, 33); #endregion verify } }
/// <summary> /// Applies the discovery process over the provided DummySolution /// </summary> /// <param name="solution">The dummy solution on which to apply test discovery</param> /// <returns>The list of tests which were discovered from the dummy solution</returns> private IList<TestCase> DiscoverTests(DummySolution solution) { DefaultTestCaseDiscoverySink discoverySink = new DefaultTestCaseDiscoverySink(); ISourceFilter[] filters = new ISourceFilter[] { new QuotedStringsFilter(), new MultilineCommentFilter(), new SingleLineCommentFilter(), new ConditionalInclusionsFilter(new ExpressionEvaluation()) }; SourceCodeDiscoverer discoverer = new SourceCodeDiscoverer(solution.Provider); discoverer.DiscoverTests(new []{solution.Source}, new DefaultTestContext(true), new ConsoleMessageLogger(), discoverySink); return discoverySink.Tests.ToList(); }
public void CorrectTestsDiscoveryForFIXTURE_TEST_SUITE() { using (DummySolution solution = new DummySolution(DefaultSource, "BoostFixtureTestSuite.cpp")) { #region exercise /** The BoostFixtureSuiteTest.cpp file consists of 3 test cases: FixtureTest1, FixtureTest2 and BoostTest, * BOOST_FIXTURE_TEST_SUITE -> FixtureSuite1 * -->BoostTest1 * -->BoostTest2 * -> Master Suite * -->BoostTest3 * BOOST_FIXTURE_TEST_SUITE -> FixtureSuite2 * -->Fixturetest_case1 * -->TemplatedTest<int> (BOOST_AUTO_TEST_CASE_TEMPLATE) * -->TemplatedTest<long> (BOOST_AUTO_TEST_CASE_TEMPLATE) * -->TemplatedTest<char> (BOOST_AUTO_TEST_CASE_TEMPLATE) */ IList<TestCase> testList = DiscoverTests(solution); #endregion exercise #region verification AssertTestDetails(testList[0], QualifiedNameBuilder.FromString("FixtureSuite1/BoostTest1")); AssertTestDetails(testList[1], QualifiedNameBuilder.FromString("FixtureSuite1/BoostTest2")); AssertTestDetails(testList[2], QualifiedNameBuilder.FromString("BoostTest3")); AssertTestDetails(testList[3], QualifiedNameBuilder.FromString("FixtureSuite2/Fixturetest_case1")); AssertTestDetails(testList[4], QualifiedNameBuilder.FromString("FixtureSuite2/TemplatedTest<int>")); AssertTestDetails(testList[5], QualifiedNameBuilder.FromString("FixtureSuite2/TemplatedTest<long>")); AssertTestDetails(testList[6], QualifiedNameBuilder.FromString("FixtureSuite2/TemplatedTest<char>")); #endregion verification } }
/// <summary> /// Applies the discovery process over the provided DummySolution /// </summary> /// <param name="solution">The dummy solution on which to apply test discovery</param> /// <returns>The list of tests which were discovered from the dummy solution</returns> private IList<TestCase> DiscoverTests(DummySolution solution) { DefaultTestCaseDiscoverySink discoverySink = new DefaultTestCaseDiscoverySink(); ISourceFilter[] filters = new ISourceFilter[] { new QuotedStringsFilter(), new MultilineCommentFilter(), new SingleLineCommentFilter(), new ConditionalInclusionsFilter(new ExpressionEvaluation()) }; BoostTestDiscovererInternal discoverer = new BoostTestDiscovererInternal(solution.Provider, filters); IDictionary<string, ProjectInfo> solutionInfo = discoverer.PrepareTestCaseData(new string[] { solution.Source }); discoverer.GetBoostTests(solutionInfo, discoverySink); return discoverySink.Tests.ToList(); }
/// <summary> /// Applies the discovery procedure over the dummy solution /// </summary> /// <param name="solution">A dummy solution from which to discover tests from</param> /// <param name="context">The IDiscoveryContext to use</param> /// <returns>An enumeration of discovered test cases</returns> private IEnumerable<VSTestCase> Discover(DummySolution solution, IDiscoveryContext context) { return Discover(solution.Provider, new string[] { solution.Source }, context); }
/// <summary> /// Applies the discovery procedure over the dummy solution /// </summary> /// <param name="solution">A dummy solution from which to discover tests from</param> /// <returns>An enumeration of discovered test cases</returns> private IEnumerable<VSTestCase> Discover(DummySolution solution) { return Discover(solution.Provider, new string[] { solution.Source }); }
/// <summary> /// Asserts test details for tests contained within the "BoostUnitTestSample.cpp" source file /// </summary> /// <param name="tests">The discovered test case enumeration</param> /// <param name="solution">The dummy solution which contains a project referencing "BoostUnitTestSample.cpp"</param> private void AssertBoostUnitTestSampleTestDetails(IEnumerable<VSTestCase> tests, DummySolution solution) { DummySourceFile codeFile = solution.SourceFileResourcePaths.First((source) => source.TempSourcePath.EndsWith(BoostUnitTestSample)); AssertBoostUnitTestSampleTestDetails(tests, solution.Source, codeFile.TempSourcePath); }
public void DiscoverTestsUsingRunSettings() { using (DummySolution solution = new DummySolution(Source, new string[] { BoostUnitTestSampleRequiringUseOfFilters })) { DefaultTestContext context = new DefaultTestContext(); context.RegisterSettingProvider(BoostTestAdapterSettings.XmlRootName, new BoostTestAdapterSettingsProvider()); context.LoadEmbeddedSettings("BoostTestAdapterNunit.Resources.Settings.conditionalIncludesDisabled.runsettings"); IEnumerable<VSTestCase> vsTests = Discover(solution, context); Assert.That(vsTests.Count(), Is.EqualTo(8)); AssertBoostUnitTestSampleRequiringUseOfFilters(vsTests, solution); VSTestCase testConditional = AssertTestDetails(vsTests, QualifiedNameBuilder.FromString("BoostUnitTestShouldNotAppear3"), Source); AssertSourceDetails(testConditional, solution.SourceFileResourcePaths.First().TempSourcePath, 47); } }
public void DiscoverTestsFromSourceFileRequiringUseOfFilters() { using (DummySolution solution = new DummySolution(Source, new string[] { BoostUnitTestSampleRequiringUseOfFilters })) { IEnumerable<VSTestCase> vsTests = Discover(solution); Assert.That(vsTests.Count(), Is.EqualTo(7)); AssertBoostUnitTestSampleRequiringUseOfFilters(vsTests, solution); } }
private void AssertBoostUnitTestSampleRequiringUseOfFilters(IEnumerable<VSTestCase> tests, DummySolution solution) { DummySourceFile codeFile = solution.SourceFileResourcePaths.First((source) => source.Path.EndsWith(BoostUnitTestSampleRequiringUseOfFilters)); AssertBoostUnitTestSampleRequiringUseOfFilters(tests, solution.Source, codeFile.Path); }
public void MultilineBoostMacroDefinitions() { using (DummySolution solution = new DummySolution(DefaultSource, "BoostMultiLineDefinitions.cpp")) { IList<TestCase> testList = DiscoverTests(solution); AssertTestDetails(testList[0], QualifiedNameBuilder.FromString("AutoSuite/TestA")); AssertTestDetails(testList[1], QualifiedNameBuilder.FromString("AutoSuite/TestB")); AssertTestDetails(testList[2], QualifiedNameBuilder.FromString("AutoSuite/TestC")); AssertTestDetails(testList[3], QualifiedNameBuilder.FromString("AutoSuite/FixtureSuite/TestD")); } }