Merge pull request #9306 from dotnet/merges/release/2.1.4xx-to-master

Merge release/2.1.4xx to master
This commit is contained in:
Livar 2018-05-17 13:41:23 -07:00 committed by GitHub
commit e338e46e10
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
21 changed files with 117 additions and 19 deletions

View file

@ -39,7 +39,7 @@
<VersionPrefix>$(CliVersionPrefix)</VersionPrefix>
<VersionSuffix>$(VersionSuffix)</VersionSuffix>
<Clean>False</Clean>
<MsbuildArgs>/p:TargetFramework=netstandard2.0</MsbuildArgs>
<MsbuildArgs>/p:TargetFramework=netstandard2.0 /p:NoWarn=NU5104</MsbuildArgs>
</BaseTestPackageProject>
<BaseTestPackageProject Include="src/Microsoft.DotNet.InternalAbstractions">
<Name>Microsoft.DotNet.InternalAbstractions</Name>

View file

@ -150,4 +150,7 @@
<data name="CreateSubcommandHelpText" xml:space="preserve">
<value>Create a solution file.</value>
</data>
<data name="ProjectsHeader" xml:space="preserve">
<value>Project(s)</value>
</data>
</root>

View file

@ -36,9 +36,9 @@ namespace Microsoft.DotNet.Tools.Sln.List
}
else
{
Reporter.Output.WriteLine($"{CommonLocalizableStrings.ProjectReferenceOneOrMore}");
Reporter.Output.WriteLine(new string('-', CommonLocalizableStrings.ProjectReferenceOneOrMore.Length));
foreach (var slnProject in slnFile.Projects)
Reporter.Output.WriteLine($"{LocalizableStrings.ProjectsHeader}");
Reporter.Output.WriteLine(new string('-', LocalizableStrings.ProjectsHeader.Length));
foreach (var slnProject in slnFile.Projects.Where(p => p.TypeGuid != ProjectTypeGuids.SolutionFolderGuid))
{
Reporter.Output.WriteLine(slnProject.FilePath);
}

View file

@ -57,6 +57,11 @@
<target state="translated">Vytvoří soubor řešení.</target>
<note />
</trans-unit>
<trans-unit id="ProjectsHeader">
<source>Project(s)</source>
<target state="new">Project(s)</target>
<note />
</trans-unit>
</body>
</file>
</xliff>

View file

@ -57,6 +57,11 @@
<target state="translated">Erstellt eine Projektmappendatei.</target>
<note />
</trans-unit>
<trans-unit id="ProjectsHeader">
<source>Project(s)</source>
<target state="new">Project(s)</target>
<note />
</trans-unit>
</body>
</file>
</xliff>

View file

@ -57,6 +57,11 @@
<target state="translated">Cree un archivo de la solución.</target>
<note />
</trans-unit>
<trans-unit id="ProjectsHeader">
<source>Project(s)</source>
<target state="new">Project(s)</target>
<note />
</trans-unit>
</body>
</file>
</xliff>

View file

@ -57,6 +57,11 @@
<target state="translated">Créez un fichier solution.</target>
<note />
</trans-unit>
<trans-unit id="ProjectsHeader">
<source>Project(s)</source>
<target state="new">Project(s)</target>
<note />
</trans-unit>
</body>
</file>
</xliff>

View file

@ -57,6 +57,11 @@
<target state="translated">Consente di creare un file di soluzione.</target>
<note />
</trans-unit>
<trans-unit id="ProjectsHeader">
<source>Project(s)</source>
<target state="new">Project(s)</target>
<note />
</trans-unit>
</body>
</file>
</xliff>

View file

@ -57,6 +57,11 @@
<target state="translated">ソリューション ファイルを作成します。</target>
<note />
</trans-unit>
<trans-unit id="ProjectsHeader">
<source>Project(s)</source>
<target state="new">Project(s)</target>
<note />
</trans-unit>
</body>
</file>
</xliff>

View file

@ -57,6 +57,11 @@
<target state="translated">솔루션 파일을 만듭니다.</target>
<note />
</trans-unit>
<trans-unit id="ProjectsHeader">
<source>Project(s)</source>
<target state="new">Project(s)</target>
<note />
</trans-unit>
</body>
</file>
</xliff>

View file

@ -57,6 +57,11 @@
<target state="translated">Utwórz plik rozwiązania.</target>
<note />
</trans-unit>
<trans-unit id="ProjectsHeader">
<source>Project(s)</source>
<target state="new">Project(s)</target>
<note />
</trans-unit>
</body>
</file>
</xliff>

View file

@ -57,6 +57,11 @@
<target state="translated">Criar um arquivo de solução.</target>
<note />
</trans-unit>
<trans-unit id="ProjectsHeader">
<source>Project(s)</source>
<target state="new">Project(s)</target>
<note />
</trans-unit>
</body>
</file>
</xliff>

View file

@ -57,6 +57,11 @@
<target state="translated">Создает файл решения.</target>
<note />
</trans-unit>
<trans-unit id="ProjectsHeader">
<source>Project(s)</source>
<target state="new">Project(s)</target>
<note />
</trans-unit>
</body>
</file>
</xliff>

View file

@ -57,6 +57,11 @@
<target state="translated">Bir çözüm dosyası oluşturun.</target>
<note />
</trans-unit>
<trans-unit id="ProjectsHeader">
<source>Project(s)</source>
<target state="new">Project(s)</target>
<note />
</trans-unit>
</body>
</file>
</xliff>

View file

@ -57,6 +57,11 @@
<target state="translated">创建解决方案文件。</target>
<note />
</trans-unit>
<trans-unit id="ProjectsHeader">
<source>Project(s)</source>
<target state="new">Project(s)</target>
<note />
</trans-unit>
</body>
</file>
</xliff>

View file

@ -57,6 +57,11 @@
<target state="translated">建立方案檔。</target>
<note />
</trans-unit>
<trans-unit id="ProjectsHeader">
<source>Project(s)</source>
<target state="new">Project(s)</target>
<note />
</trans-unit>
</body>
</file>
</xliff>

View file

@ -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;
}
}
}
}

View file

@ -86,7 +86,7 @@
<DotNetPublish ToolPath="$(PreviousStageDirectory)"
Configuration="$(Configuration)"
ProjectPath="$(SrcDirectory)/tool_fsharp/tool_fsc.csproj" />
ProjectPath="$(SrcDirectory)/tool_fsharp/tool_fsc.csproj" MSBuildArgs="/p:PublishDir=$(FSharpDirectory)" />
</Target>
<Target Name="GenerateCliRuntimeConfigurationFiles"

View file

@ -2,11 +2,8 @@
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.tasks))\dir.tasks" />
<PropertyGroup>
<VersionPrefix>$(CliVersionPrefix)</VersionPrefix>
<TargetFramework>$(CliTargetFramework)</TargetFramework>
<GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>
<PublishDir>$(FSharpDirectory)</PublishDir>
<VersionSuffix>$(CommitCount)</VersionSuffix>
</PropertyGroup>
<ItemGroup>

View file

@ -9,6 +9,7 @@ using System;
using System.IO;
using System.Linq;
using Xunit;
using CommandLocalizableStrings = Microsoft.DotNet.Tools.Sln.LocalizableStrings;
namespace Microsoft.DotNet.Cli.Sln.List.Tests
{
@ -160,7 +161,7 @@ Commands:
}
[Fact]
public void WhenNoProjectReferencesArePresentInTheSolutionItPrintsANoProjectMessage()
public void WhenNoProjectsArePresentInTheSolutionItPrintsANoProjectMessage()
{
var projectDirectory = TestAssets
.Get("TestAppWithEmptySln")
@ -177,11 +178,10 @@ Commands:
}
[Fact]
public void WhenProjectReferencesArePresentInTheSolutionItListsThem()
public void WhenProjectsPresentInTheSolutionItListsThem()
{
string OutputText = CommonLocalizableStrings.ProjectReferenceOneOrMore;
OutputText += $@"
{new string('-', OutputText.Length)}
var expectedOutput = $@"{CommandLocalizableStrings.ProjectsHeader}
{new string('-', CommandLocalizableStrings.ProjectsHeader.Length)}
{Path.Combine("App", "App.csproj")}
{Path.Combine("Lib", "Lib.csproj")}";
@ -196,7 +196,7 @@ Commands:
.WithWorkingDirectory(projectDirectory)
.ExecuteWithCapturedOutput("sln list");
cmd.Should().Pass();
cmd.StdOut.Should().BeVisuallyEquivalentTo(OutputText);
cmd.StdOut.Should().BeVisuallyEquivalentTo(expectedOutput);
}
}
}

View file

@ -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()
{