dotnet-installer/test/dotnet-test.Tests/GivenDotnetTestBuildsAndRunsTestFromCsprojForMultipleTFM.cs
Faizan2304 b90b191ef0 Insert Microsoft.TestPlatform.cli for update3 preview1 (#6420)
* Fix test issue failing with PathTooLongIssue

(cherry picked from commit 340254f7742201c74ed1a5c349bdca89113bd5dc)

* fix for issues:
1) https://github.com/Microsoft/vstest/issues/755
2) https://github.com/Microsoft/vstest/issues/687
3) https://github.com/Microsoft/vstest/issues/737

(cherry picked from commit 0e93b2a5d4734637538781fa5401ed81a31eea0f)

* use new version

* Update version

* Fix pathtoolong issue

* Fix test
2017-05-02 21:30:51 -07:00

79 lines
3.4 KiB
C#

// Copyright (c) .NET Foundation and contributors. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
using Microsoft.DotNet.Tools.Test.Utilities;
using FluentAssertions;
using Microsoft.DotNet.TestFramework;
using Microsoft.DotNet.Cli.Utils;
using System.IO;
using System;
namespace Microsoft.DotNet.Cli.Test.Tests
{
public class GivenDotnetTestBuildsAndRunsTestFromCsprojForMultipleTFM : TestBase
{
[WindowsOnlyFact]
public void MStestMultiTFM()
{
var testProjectDirectory = TestAssets.Get("VSTestMulti")
.CreateInstance("1")
.WithSourceFiles()
.WithNuGetConfig(new RepoDirectoriesProvider().TestPackages)
.Root;
var runtime = DotnetLegacyRuntimeIdentifiers.InferLegacyRestoreRuntimeIdentifier();
new RestoreCommand()
.WithWorkingDirectory(testProjectDirectory)
.WithRuntime(runtime)
.Execute()
.Should().Pass();
var result = new DotnetTestCommand()
.WithWorkingDirectory(testProjectDirectory)
.WithRuntime(runtime)
.ExecuteWithCapturedOutput(TestBase.ConsoleLoggerOutputNormal);
result.StdOut
.Should().Contain("Total tests: 3. Passed: 2. Failed: 1. Skipped: 0.", "because .NET 4.6 tests will pass")
.And.Contain("Passed TestNamespace.VSTestTests.VSTestPassTestDesktop", "because .NET 4.6 tests will pass")
.And.Contain("Total tests: 3. Passed: 1. Failed: 2. Skipped: 0.", "because netcoreapp2.0 tests will fail")
.And.Contain("Failed TestNamespace.VSTestTests.VSTestFailTestNetCoreApp", "because netcoreapp2.0 tests will fail");
result.ExitCode.Should().Be(1);
}
[WindowsOnlyFact]
public void XunitMultiTFM()
{
// Copy XunitMulti project in output directory of project dotnet-test.Tests
string testAppName = "XunitMulti";
var testInstance = TestAssets.Get(testAppName)
.CreateInstance("2")
.WithSourceFiles();
var testProjectDirectory = testInstance.Root.FullName;
// Restore project XunitMulti
new RestoreCommand()
.WithWorkingDirectory(testProjectDirectory)
.Execute()
.Should()
.Pass();
// Call test
CommandResult result = new DotnetTestCommand()
.WithWorkingDirectory(testProjectDirectory)
.ExecuteWithCapturedOutput(TestBase.ConsoleLoggerOutputNormal);
// Verify
// for target framework net46
result.StdOut.Should().Contain("Total tests: 3. Passed: 2. Failed: 1. Skipped: 0.");
result.StdOut.Should().Contain("Passed TestNamespace.VSTestXunitTests.VSTestXunitPassTestDesktop");
// for target framework netcoreapp1.0
result.StdOut.Should().Contain("Total tests: 3. Passed: 1. Failed: 2. Skipped: 0.");
result.StdOut.Should().Contain("Failed TestNamespace.VSTestXunitTests.VSTestXunitFailTestNetCoreApp");
result.ExitCode.Should().Be(1);
}
}
}