public void TestsFromAGivenContainerShouldRunWithExpectedOutput() { var testAppName = "VSTestCore"; var testAsset = _testAssetsManager.CopyTestAsset(testAppName) .WithSource() .WithVersionVariables(); var testRoot = testAsset.Path; var configuration = Environment.GetEnvironmentVariable("CONFIGURATION") ?? "Debug"; new BuildCommand(testAsset) .Execute() .Should().Pass(); var outputDll = Path.Combine(testRoot, "bin", configuration, "netcoreapp3.0", $"{testAppName}.dll"); // Call vstest var result = new DotnetVSTestCommand(Log) .Execute(outputDll, "--logger:console;verbosity=normal"); if (!TestContext.IsLocalized()) { result.StdOut .Should().Contain("Total tests: 2") .And.Contain("Passed: 1") .And.Contain("Failed: 1") .And.Contain("\u221a VSTestPassTest") .And.Contain("X VSTestFailTest"); } result.ExitCode.Should().Be(1); }
public void ItShouldSetDotnetRootToLocationOfDotnetExecutable() { var testAppName = "VSTestCore"; var testAsset = _testAssetsManager.CopyTestAsset(testAppName) .WithSource() .WithVersionVariables(); var testRoot = testAsset.Path; var configuration = Environment.GetEnvironmentVariable("CONFIGURATION") ?? "Debug"; new BuildCommand(testAsset) .Execute() .Should().Pass(); var outputDll = Path.Combine(testRoot, "bin", configuration, "netcoreapp3.1", $"{testAppName}.dll"); // Call vstest var result = new DotnetVSTestCommand(Log) .Execute(outputDll, "--logger:console;verbosity=normal"); result.ExitCode.Should().Be(1); var dotnet = result.StartInfo.FileName; Path.GetFileNameWithoutExtension(dotnet).Should().Be("dotnet"); string dotnetRoot = Environment.Is64BitProcess ? "DOTNET_ROOT" : "DOTNET_ROOT(x86)"; result.StartInfo.EnvironmentVariables.ContainsKey(dotnetRoot).Should().BeTrue($"because {dotnetRoot} should be set"); result.StartInfo.EnvironmentVariables[dotnetRoot].Should().Be(Path.GetDirectoryName(dotnet)); }
public void GivenADllAndMultipleTestRunParametersItPassesThemToVStestConsoleInTheCorrectFormat() { var testProjectDirectory = this.CopyAndRestoreVSTestDotNetCoreTestApp("1"); var configuration = Environment.GetEnvironmentVariable("CONFIGURATION") ?? "Debug"; new BuildCommand(Log, testProjectDirectory) .Execute() .Should().Pass(); var outputDll = Path.Combine(testProjectDirectory, "bin", configuration, "netcoreapp3.0", "VSTestTestRunParameters.dll"); // Call test CommandResult result = new DotnetVSTestCommand(Log) .Execute(new[] { outputDll, "--logger:console;verbosity=normal", "--", "TestRunParameters.Parameter(name=\"myParam\",", "value=\"value\")", "TestRunParameters.Parameter(name=\"myParam2\",", "value=\"value", "with", "space\")" }); // Verify if (!TestContext.IsLocalized()) { result.StdOut.Should().NotMatch("The test run parameter argument '*' is invalid."); result.StdOut.Should().Contain("Total tests: 1"); result.StdOut.Should().Contain("Passed: 1"); result.StdOut.Should().Contain("\u221a VSTestTestRunParameters"); } result.ExitCode.Should().Be(0); }