private static IBoostTestDiscoverer GetExternalTestDiscoverer(string source, ExternalBoostTestRunnerSettings settings) { Utility.Code.Require(settings, "settings"); if (settings.ExtensionType == Path.GetExtension(source)) { return new ExternalBoostTestDiscoverer(settings); } return null; }
public void DiscoveryFileMapDiscovery() { string listing = TestHelper.CopyEmbeddedResourceToDirectory("BoostTestAdapterNunit.Resources.TestLists", "sample.test.list.xml", Path.GetTempPath()); try { ExternalBoostTestRunnerSettings settings = new ExternalBoostTestRunnerSettings { ExtensionType = ".dll", DiscoveryMethodType = DiscoveryMethodType.DiscoveryFileMap }; settings.DiscoveryFileMap["test_1.dll"] = listing; ExternalDiscoverer discoverer = new ExternalDiscoverer(settings); DefaultTestContext context = new DefaultTestContext(); ConsoleMessageLogger logger = new ConsoleMessageLogger(); DefaultTestCaseDiscoverySink sink = new DefaultTestCaseDiscoverySink(); const string mappedSource = "C:\\test_1.dll"; const string unmappedSource = "C:\\test_2.dll"; discoverer.DiscoverTests(new string[] { mappedSource, unmappedSource }, context, logger, sink); // A total of 7 tests should be discovered as described in the Xml descriptor Assert.That(sink.Tests.Count(), Is.EqualTo(7)); // All of the discovered tests should originate from C:\test_1.dll. // No mapping to C:\test_2.dll exist so no tests should be discovered from that source. Assert.That(sink.Tests.Count((test) => test.Source == mappedSource), Is.EqualTo(7)); const string masterTestSuite = "Test runner test"; AssertVSTestCaseProperties(sink.Tests, QualifiedNameBuilder.FromString(masterTestSuite, "test1"), mappedSource, new SourceFileInfo("test_runner_test.cpp", 26)); AssertVSTestCaseProperties(sink.Tests, QualifiedNameBuilder.FromString(masterTestSuite, "test2"), mappedSource, new SourceFileInfo("test_runner_test.cpp", 35)); AssertVSTestCaseProperties(sink.Tests, QualifiedNameBuilder.FromString(masterTestSuite, "SampleSuite/SampleNestedSuite/test3"), mappedSource, new SourceFileInfo("test_runner_test.cpp", 48)); AssertVSTestCaseProperties(sink.Tests, QualifiedNameBuilder.FromString(masterTestSuite, "TemplateSuite/my_test<char>"), mappedSource, new SourceFileInfo("test_runner_test.cpp", 79)); AssertVSTestCaseProperties(sink.Tests, QualifiedNameBuilder.FromString(masterTestSuite, "TemplateSuite/my_test<int>"), mappedSource, new SourceFileInfo("test_runner_test.cpp", 79)); AssertVSTestCaseProperties(sink.Tests, QualifiedNameBuilder.FromString(masterTestSuite, "TemplateSuite/my_test<float>"), mappedSource, new SourceFileInfo("test_runner_test.cpp", 79)); AssertVSTestCaseProperties(sink.Tests, QualifiedNameBuilder.FromString(masterTestSuite, "TemplateSuite/my_test<double>"), mappedSource, new SourceFileInfo("test_runner_test.cpp", 79)); } finally { if (File.Exists(listing)) { File.Delete(listing); } } }
public Type TestDiscovererProvisioning(string source, string externalExtension) { ExternalBoostTestRunnerSettings settings = null; if (!string.IsNullOrEmpty(externalExtension)) { settings = new ExternalBoostTestRunnerSettings { ExtensionType = externalExtension }; } BoostTestDiscovererFactoryOptions options = new BoostTestDiscovererFactoryOptions { ExternalTestRunnerSettings = settings }; IBoostTestDiscoverer discoverer = this.Factory.GetTestDiscoverer(source, options); return (discoverer == null) ? null : discoverer.GetType(); }
public Type TestDiscovererProvisioning(string source, bool useListContent, string externalExtension) { ExternalBoostTestRunnerSettings externalSettings = null; if (!string.IsNullOrEmpty(externalExtension)) { externalSettings = new ExternalBoostTestRunnerSettings { ExtensionType = externalExtension }; } BoostTestAdapterSettings settings = new BoostTestAdapterSettings() { ExternalTestRunner = externalSettings, UseListContent = useListContent }; IBoostTestDiscoverer discoverer = this.Factory.GetDiscoverer(source, settings); return (discoverer == null) ? null : discoverer.GetType(); }
/// <summary> /// Constructo /// </summary> /// <param name="source">The test source (dll/exe) for which this external test runner will execute</param> /// <param name="settings">External test runner configuration</param> public ExternalBoostTestRunner(string source, ExternalBoostTestRunnerSettings settings) : base(GetTestExecutable(settings, source)) { this._source = source; this.Settings = settings; }
/// <summary> /// Extracts and evaluates the test executable from the external Boost Test runner configuration. /// </summary> /// <param name="settings">The external Boost Test runner configuration</param> /// <param name="source">The test source module containing the tests to execute</param> /// <returns>The evaluated, test executable program string</returns> private static string GetTestExecutable(ExternalBoostTestRunnerSettings settings, string source) { Utility.Code.Require(settings, "settings"); Utility.Code.Require(settings.ExecutionCommandLine, "settings.ExecutionCommandLine"); return BuildEvaluator(source).Evaluate(settings.ExecutionCommandLine.FileName).Result; }
public ExternalBoostTestDiscoverer(ExternalBoostTestRunnerSettings settings) { this.Settings = settings; }
/// <summary> /// Constructor. /// </summary> /// <param name="settings">Settings for this instance of the discoverer.</param> /// <param name="provider">Visual Studio Instance provider</param> public ExternalDiscoverer(ExternalBoostTestRunnerSettings settings, IVisualStudioInstanceProvider provider) { Settings = settings; VSProvider = provider; }
/// <summary> /// Constructor. /// </summary> /// <param name="settings">Settings for this instance of the discoverer.</param> public ExternalDiscoverer(ExternalBoostTestRunnerSettings settings) : this(settings, new DefaultVisualStudioInstanceProvider()) { }
public Type TestDiscovererProvisioning(string source, ListContentUse listContent, string externalExtension) { ExternalBoostTestRunnerSettings externalSettings = null; if (!string.IsNullOrEmpty(externalExtension)) { externalSettings = new ExternalBoostTestRunnerSettings { ExtensionType = new Regex(externalExtension) }; } BoostTestAdapterSettings settings = new BoostTestAdapterSettings() { ExternalTestRunner = externalSettings, ForceListContent = (listContent == ListContentUse.ForceUse) }; IBoostTestDiscoverer discoverer = this.DiscovererFactory.GetDiscoverer(source, settings); return (discoverer == null) ? null : discoverer.GetType(); }