Skip to content
This repository has been archived by the owner on Apr 20, 2023. It is now read-only.

Vstest args for dotnet cli #9211

Closed
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
095891a
[WIP]Update Vstest args for dotnet cli
mayankbansal018 May 7, 2018
1a8ba89
Update clicommandlineparser, climigrate, coresetup, coresetup, corese…
dotnet-maestro-bot May 9, 2018
4919ee2
Merge branch 'release/2.1.3xx' into release/2.1.3xx-UpdateDependencies
May 9, 2018
4a8ef01
add test
mayankbansal018 May 11, 2018
d3a29c3
Merge branch 'release/2.1.4xx' into vstestArguments
mayankbansal018 May 11, 2018
8517864
Fix Test
mayankbansal018 May 11, 2018
77fb5c3
Fixing test code
mayankbansal018 May 11, 2018
fb18c67
Merge pull request #9232 from dotnet-maestro-bot/release/2.1.3xx-Upda…
May 11, 2018
1feaa03
Fix incorrect default VSTest verbosity level.
May 12, 2018
59a27df
Merge pull request #9267 from peterhuene/fix-test-verbosity
May 12, 2018
d455a33
Merge branch 'release/2.1.4xx' into vstestArguments
mayankbansal018 May 14, 2018
003b499
revert changes for verbosity
mayankbansal018 May 14, 2018
08b20ef
Merge pull request #9275 from dotnet/merges/release/2.1.3xx-to-releas…
johnbeisner May 15, 2018
28f7b8e
[WIP]Update Vstest args for dotnet cli
mayankbansal018 May 7, 2018
86dd27b
add test
mayankbansal018 May 11, 2018
6a22c24
Fix Test
mayankbansal018 May 11, 2018
266f547
Fixing test code
mayankbansal018 May 11, 2018
64c647f
revert changes for verbosity
mayankbansal018 May 14, 2018
5131ec7
Merge branch 'vstestArguments' of https://github.com/mayankbansal018/…
mayankbansal018 May 16, 2018
e37c423
PR comments, using "-property" rather than "/p"
mayankbansal018 May 16, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 8 additions & 8 deletions build/DependencyVersions.props
Original file line number Diff line number Diff line change
Expand Up @@ -10,29 +10,29 @@
<MicrosoftBuildRuntimePackageVersion>$(MicrosoftBuildPackageVersion)</MicrosoftBuildRuntimePackageVersion>
<MicrosoftBuildLocalizationPackageVersion>$(MicrosoftBuildPackageVersion)</MicrosoftBuildLocalizationPackageVersion>
<MicrosoftBuildUtilitiesCorePackageVersion>$(MicrosoftBuildPackageVersion)</MicrosoftBuildUtilitiesCorePackageVersion>
<MicrosoftFSharpCompilerPackageVersion>10.1.4-rtm-180505-0</MicrosoftFSharpCompilerPackageVersion>
<MicrosoftFSharpCompilerPackageVersion>10.1.4-rtm-180508-0</MicrosoftFSharpCompilerPackageVersion>
<MicrosoftCodeAnalysisCSharpPackageVersion>2.8.1-beta6-62904-04</MicrosoftCodeAnalysisCSharpPackageVersion>
<MicrosoftNETCoreCompilersPackageVersion>$(MicrosoftCodeAnalysisCSharpPackageVersion)</MicrosoftNETCoreCompilersPackageVersion>
<MicrosoftCodeAnalysisBuildTasksPackageVersion>$(MicrosoftCodeAnalysisCSharpPackageVersion)</MicrosoftCodeAnalysisBuildTasksPackageVersion>
<MicrosoftNetCompilersNetcorePackageVersion>$(MicrosoftCodeAnalysisCSharpPackageVersion)</MicrosoftNetCompilersNetcorePackageVersion>
<MicrosoftNETSdkPackageVersion>2.1.300-rtm-62905-02</MicrosoftNETSdkPackageVersion>
<MicrosoftNETSdkPackageVersion>2.1.300-rtm-62908-02</MicrosoftNETSdkPackageVersion>
<MicrosoftNETBuildExtensionsPackageVersion>$(MicrosoftNETSdkPackageVersion)</MicrosoftNETBuildExtensionsPackageVersion>
<MicrosoftNETSdkRazorPackageVersion>$(MicrosoftAspNetCoreAppPackageVersion)</MicrosoftNETSdkRazorPackageVersion>
<MicrosoftNETSdkWebPackageVersion>2.1.300-rtm-20180505-1661707</MicrosoftNETSdkWebPackageVersion>
<MicrosoftNETSdkWebPackageVersion>2.1.300-rtm-20180508-1667423</MicrosoftNETSdkWebPackageVersion>
<MicrosoftNETSdkPublishPackageVersion>$(MicrosoftNETSdkWebPackageVersion)</MicrosoftNETSdkPublishPackageVersion>
<MicrosoftNETSdkWebProjectSystemPackageVersion>$(MicrosoftNETSdkWebPackageVersion)</MicrosoftNETSdkWebProjectSystemPackageVersion>
<MicrosoftDotNetCommonItemTemplatesPackageVersion>1.0.2-beta3-20180505-1661716</MicrosoftDotNetCommonItemTemplatesPackageVersion>
<MicrosoftDotNetCommonItemTemplatesPackageVersion>1.0.2-beta3-20180508-1667431</MicrosoftDotNetCommonItemTemplatesPackageVersion>
<MicrosoftDotNetCommonProjectTemplates20PackageVersion>$(MicrosoftDotNetCommonItemTemplatesPackageVersion)</MicrosoftDotNetCommonProjectTemplates20PackageVersion>
<MicrosoftDotNetTestProjectTemplates20PackageVersion>1.0.2-beta3-20180505-1661716</MicrosoftDotNetTestProjectTemplates20PackageVersion>
<MicrosoftTemplateEngineCliPackageVersion>1.0.2-beta3-20180505-1661716</MicrosoftTemplateEngineCliPackageVersion>
<MicrosoftDotNetTestProjectTemplates20PackageVersion>1.0.2-beta3-20180508-1667431</MicrosoftDotNetTestProjectTemplates20PackageVersion>
<MicrosoftTemplateEngineCliPackageVersion>1.0.2-beta3-20180508-1667431</MicrosoftTemplateEngineCliPackageVersion>
<MicrosoftTemplateEngineAbstractionsPackageVersion>$(MicrosoftTemplateEngineCliPackageVersion)</MicrosoftTemplateEngineAbstractionsPackageVersion>
<MicrosoftTemplateEngineCliLocalizationPackageVersion>$(MicrosoftTemplateEngineCliPackageVersion)</MicrosoftTemplateEngineCliLocalizationPackageVersion>
<MicrosoftTemplateEngineOrchestratorRunnableProjectsPackageVersion>$(MicrosoftTemplateEngineCliPackageVersion)</MicrosoftTemplateEngineOrchestratorRunnableProjectsPackageVersion>
<MicrosoftTemplateEngineUtilsPackageVersion>$(MicrosoftTemplateEngineCliPackageVersion)</MicrosoftTemplateEngineUtilsPackageVersion>
<MicrosoftDotNetPlatformAbstractionsPackageVersion>2.1.0-rtm-26508-02</MicrosoftDotNetPlatformAbstractionsPackageVersion>
<MicrosoftExtensionsDependencyModelPackageVersion>2.1.0-rtm-26508-02</MicrosoftExtensionsDependencyModelPackageVersion>
<MicrosoftDotNetCliCommandLinePackageVersion>0.1.1-rtm-62905-02</MicrosoftDotNetCliCommandLinePackageVersion>
<MicrosoftDotNetProjectJsonMigrationPackageVersion>1.3.1-alpha-62905-02</MicrosoftDotNetProjectJsonMigrationPackageVersion>
<MicrosoftDotNetCliCommandLinePackageVersion>0.1.1-rtm-62908-03</MicrosoftDotNetCliCommandLinePackageVersion>
<MicrosoftDotNetProjectJsonMigrationPackageVersion>1.3.1-alpha-62908-03</MicrosoftDotNetProjectJsonMigrationPackageVersion>
<MicrosoftDotNetToolsMigrateCommandPackageVersion>$(MicrosoftDotNetProjectJsonMigrationPackageVersion)</MicrosoftDotNetToolsMigrateCommandPackageVersion>
<MicrosoftDotNetArchivePackageVersion>0.2.0-beta-62628-01</MicrosoftDotNetArchivePackageVersion>
<NuGetBuildTasksPackageVersion>4.8.0-preview1.5158</NuGetBuildTasksPackageVersion>
Expand Down
3 changes: 3 additions & 0 deletions src/dotnet/ArgumentForwardingExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,9 @@ public static IEnumerable<string> OptionValuesToBeForwarded(
.OfType<ForwardedArgument>()
.SelectMany(o => o.Values);

public static IEnumerable<string> ForwardedOptionValues(this AppliedOption command, string alias) =>
(command.ValueOrDefault<ForwardedArgument>(alias)?.Values ?? Array.Empty<string>());

private class ForwardedArgument
{
public ForwardedArgument(params string[] values)
Expand Down
7 changes: 3 additions & 4 deletions src/dotnet/commands/dotnet-test/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -60,11 +60,10 @@ public static TestCommand FromArgs(string[] args, string msbuildPath = null)
msbuildArgs.Add($"-property:VSTestCLIRunSettings=\"{runSettingsArg}\"");
}

var verbosityArg = msbuildArgs.LastOrDefault(arg => arg.StartsWith("-verbosity"));

if (!string.IsNullOrEmpty(verbosityArg))
var verbosityArg = parsedTest.ForwardedOptionValues("verbosity").SingleOrDefault();
if (verbosityArg != null)
{
var verbosity = verbosityArg.Split(':');
var verbosity = verbosityArg.Split(':', 2);
if (verbosity.Length == 2)
{
msbuildArgs.Add($"-property:VSTestVerbosity={verbosity[1]}");
Expand Down
10 changes: 5 additions & 5 deletions src/dotnet/commands/dotnet-test/TestCommandParser.cs
Original file line number Diff line number Diff line change
Expand Up @@ -40,19 +40,19 @@ public static Command Test() =>
Create.Option(
"-a|--test-adapter-path",
LocalizableStrings.CmdTestAdapterPathDescription,
Accept.ExactlyOneArgument()
Accept.OneOrMoreArguments()
.With(name: LocalizableStrings.CmdTestAdapterPath)
.ForwardAsSingle(o => $"-property:VSTestTestAdapterPath={o.Arguments.Single()}")),
.ForwardAsSingle(o => $"-property:VSTestTestAdapterPath=\"{string.Join(";", o.Arguments)}\"")),
Create.Option(
"-l|--logger",
LocalizableStrings.CmdLoggerDescription,
Accept.ExactlyOneArgument()
Accept.OneOrMoreArguments()
.With(name: LocalizableStrings.CmdLoggerOption)
.ForwardAsSingle(o =>
{
var loggersString = string.Join(";", GetSemiColonEscapedArgs(o.Arguments));

return $"-property:VSTestLogger={loggersString}";
return $"-property:VSTestLogger=\"{loggersString}\"";
})),
CommonOptions.ConfigurationOption(),
CommonOptions.FrameworkOption(),
Expand Down Expand Up @@ -116,4 +116,4 @@ private static string[] GetSemiColonEscapedArgs(IReadOnlyCollection<string> args
return array;
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,27 @@ public void XunitSingleTFM()
result.ExitCode.Should().Be(1);
}

[Fact]
public void GivenAFailingTestItDisplaysFailureDetails()
{
var testInstance = TestAssets.Get("XunitCore")
.CreateInstance()
.WithSourceFiles();

var result = new DotnetTestCommand()
.WithWorkingDirectory(testInstance.Root.FullName)
.ExecuteWithCapturedOutput();

result.ExitCode.Should().Be(1);

if (!DotnetUnderTest.IsLocalized())
{
result.StdOut.Should().Contain("Failed TestNamespace.VSTestXunitTests.VSTestXunitFailTest");
result.StdOut.Should().Contain("Assert.Equal() Failure");
result.StdOut.Should().Contain("Total tests: 2. Passed: 1. Failed: 1. Skipped: 0.");
}
}

[Fact]
public void TestWillNotBuildTheProjectIfNoBuildArgsIsGiven()
{
Expand Down Expand Up @@ -257,6 +278,39 @@ public void ItUsesVerbosityPassedToDefineVerbosityOfConsoleLoggerOfTheTests()
result.ExitCode.Should().Be(1);
}

[Fact]
public void ItAcceptsMultipleLoggersAsCliArguments()
{
// Copy and restore VSTestCore project in output directory of project dotnet-vstest.Tests
var testProjectDirectory = this.CopyAndRestoreVSTestDotNetCoreTestApp("10");

string trxLoggerDirectory = Path.Combine(testProjectDirectory, "RD");

// Delete trxLoggerDirectory if it exist
if (Directory.Exists(trxLoggerDirectory))
{
Directory.Delete(trxLoggerDirectory, true);
}

// Call test with logger enable
CommandResult result = new DotnetTestCommand()
.WithWorkingDirectory(testProjectDirectory)
.ExecuteWithCapturedOutput("--logger \"trx;logfilename=custom.trx\" --logger console;verbosity=normal -- RunConfiguration.ResultsDirectory=" + trxLoggerDirectory);

// Verify
var trxFilePath = Path.Combine(trxLoggerDirectory, "custom.trx");
Assert.True(File.Exists(trxFilePath));
result.StdOut.Should().Contain(trxFilePath);
result.StdOut.Should().Contain("Passed VSTestPassTest");
result.StdOut.Should().Contain("Failed VSTestFailTest");

// Cleanup trxLoggerDirectory if it exist
if (Directory.Exists(trxLoggerDirectory))
{
Directory.Delete(trxLoggerDirectory, true);
}
}

private string CopyAndRestoreVSTestDotNetCoreTestApp([CallerMemberName] string callingMethod = "")
{
// Copy VSTestCore project in output directory of project dotnet-vstest.Tests
Expand Down