Merge pull request #9302 from mayankbansal018/dotnetvstestargs
Multiple Logger/TestAdapter inputs from dotnet CLI
This commit is contained in:
commit
7be6af8c3b
2 changed files with 38 additions and 5 deletions
|
@ -40,19 +40,19 @@ namespace Microsoft.DotNet.Cli
|
|||
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(),
|
||||
|
@ -116,4 +116,4 @@ namespace Microsoft.DotNet.Cli
|
|||
return array;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -131,6 +131,39 @@ namespace Microsoft.DotNet.Cli.Test.Tests
|
|||
}
|
||||
}
|
||||
|
||||
[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);
|
||||
}
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TestWillNotBuildTheProjectIfNoBuildArgsIsGiven()
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue