From f28a004cd407f075d1a5ce3a0074178a2a79cfb6 Mon Sep 17 00:00:00 2001 From: Sarah Oslund Date: Wed, 7 Apr 2021 11:43:43 -0700 Subject: [PATCH] Port Error on duplicate test output dirs #16521 --- Directory.Build.props | 2 ++ ...Microsoft.DotNet.Cli.Sln.Internal.Tests.cs | 8 ++--- .../SenderTests.cs | 20 +++++++---- .../ShellShimRepositoryTests.cs | 32 +++++++----------- .../ToolPackageInstallerTests.cs | 11 ++++--- .../ToolPackageUninstallerTests.cs | 10 ++++-- .../Microsoft.NET.Build.Tests/AppHostTests.cs | 2 +- .../DeleteNuGetArtifactsFixture.cs | 5 +-- .../DepsFileSkipTests.cs | 2 +- .../GivenFrameworkReferences.cs | 6 ++-- ...nThatWeHaveAPackageReferenceWithAliases.cs | 13 +++++--- ...tSatelliteAssembliesHaveassemblyVersion.cs | 5 +-- ...GivenThatWeWantToBuildAComServerLibrary.cs | 4 +-- .../GivenThatWeWantToBuildALibrary.cs | 20 ++++++----- ...ntToBuildALibraryWithOSSupportedVersion.cs | 4 +-- .../GivenThatWeWantToBuildALibraryWithVB.cs | 2 +- .../GivenThatWeWantToBuildANetCoreApp.cs | 16 +++++++-- ...ildASolutionWithNonDefaultConfiguration.cs | 2 +- ...dASolutionWithNonDefaultConfigurationVB.cs | 2 +- ...ThatWeWantToBuildAWindowsDesktopProject.cs | 2 +- ...atWeWantToBuildAWindowsRuntimeComponent.cs | 2 +- ...venThatWeWantToBuildWithATargetPlatform.cs | 2 +- .../GivenThatWeWantToBuildWithGlobalJson.cs | 2 +- ...hatWeWantToControlGeneratedAssemblyInfo.cs | 4 +-- ...venThatWeWantToProduceReferenceAssembly.cs | 2 +- .../GivenThatWeWantToReferenceAProject.cs | 4 +-- .../GivenThatWeWantToReferenceAnAssembly.cs | 8 ++--- .../GivenThatWeWantToResolveConflicts.cs | 10 +++--- ...nThatWeWantToVerifyNuGetReferenceCompat.cs | 23 +++++++------ .../GivenThereAreDefaultItems.cs | 6 ++-- ...venWeWantToRequireWindowsForDesktopApps.cs | 19 ++++++----- ...enThatThereAreImplicitPackageReferences.cs | 10 +++--- ...venThatWeWantToPackANetFrameworkLibrary.cs | 5 +-- .../GivenThatWeWantToPackAProjectTool.cs | 2 +- .../FilesCopiedToPublishDirTests.cs | 2 +- ...DepsJsonShouldContainVersionInformation.cs | 6 ++-- ...enThatWeWantToFilterSatelliteAssemblies.cs | 2 +- ...enThatWeWantToPublishAHelloWorldProject.cs | 5 +-- .../GivenThatWeWantToPublishASingleFileApp.cs | 13 ++++---- .../GivenThatWeWantToPublishAWebApp.cs | 5 +-- .../GivenThatWeWantToPublishReadyToRun.cs | 33 ++++++++++++------- .../GivenThatWeWantToPublishToClickOnce.cs | 2 +- ...WithGeneratePackageOnBuildAndPackAsTool.cs | 2 +- .../GivenThatWeWantToRunILLink.cs | 12 +++---- .../PublishItemsOutputGroupOutputsTests.cs | 2 +- .../PublishItemsOutputGroupTests.cs | 2 +- ...tWeWantAutomaticTargetingPackReferences.cs | 4 +-- .../TestAssetsManager.cs | 10 +++++- ...kAToolProjectWithComplexNugetDependency.cs | 2 +- ...eWantToPackAToolProjectWithPackagedShim.cs | 2 +- ...atWeWantToPackAToolSelfContainedProject.cs | 5 +-- ...WantToPackAToolTargetingNonSupportedTFM.cs | 2 +- .../GivenDotnetPackageAdd.cs | 11 ++++--- .../GivenDotnetAddReference.cs | 6 ++-- .../GivenDotnetListPackage.cs | 2 +- .../GivenDotnetListReference.cs | 2 +- .../GivenDotnetMSBuildBuildsProjects.cs | 2 +- .../GivenDotnetRemoveP2P.cs | 4 +-- .../GivenThatIWantToRestoreApp.cs | 10 +++--- .../dotnet-sln.Tests/GivenDotnetSlnAdd.cs | 8 ++--- .../dotnet-sln.Tests/GivenDotnetSlnList.cs | 4 +-- .../dotnet-sln.Tests/GivenDotnetSlnRemove.cs | 6 ++-- src/Tests/dotnet-vstest.Tests/VSTestTests.cs | 2 +- .../dotnet-watch.Tests/FileWatcherTests.cs | 16 ++++----- .../dotnet-watch.Tests/GlobbingAppTests.cs | 2 +- 65 files changed, 252 insertions(+), 201 deletions(-) diff --git a/Directory.Build.props b/Directory.Build.props index 871fa886df8e..d849ce76c312 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -17,6 +17,8 @@ true + + $(DefineConstants);CI_BUILD diff --git a/src/Tests/Microsoft.DotNet.Cli.Sln.Internal.Tests/Microsoft.DotNet.Cli.Sln.Internal.Tests.cs b/src/Tests/Microsoft.DotNet.Cli.Sln.Internal.Tests/Microsoft.DotNet.Cli.Sln.Internal.Tests.cs index 06e4423a309a..e881a5b06f74 100644 --- a/src/Tests/Microsoft.DotNet.Cli.Sln.Internal.Tests/Microsoft.DotNet.Cli.Sln.Internal.Tests.cs +++ b/src/Tests/Microsoft.DotNet.Cli.Sln.Internal.Tests/Microsoft.DotNet.Cli.Sln.Internal.Tests.cs @@ -104,9 +104,9 @@ public GivenAnSlnFile(ITestOutputHelper log) : base(log) { } - private string CreateFile([CallerMemberName] string callerName = null) + private string CreateFile([CallerMemberName] string callerName = null, string identifier = null) { - var folder = _testAssetsManager.CreateTestDirectory(testName: callerName); + var folder = _testAssetsManager.CreateTestDirectory(testName: callerName + identifier); var filename = Path.Combine(folder.Path, Guid.NewGuid().ToString() + ".tmp"); using (new FileStream(filename, FileMode.CreateNew)) { } return filename; @@ -324,7 +324,7 @@ public void WhenGivenAValidSlnFileItModifiesSavesAndVerifiesContents() [InlineData("First Line\nSecondLine\nMicrosoft Visual Studio Solution File, Format Version \nFourth Line", 3)] public void WhenGivenASolutionWithMissingHeaderVersionItThrows(string fileContents, int lineNum) { - var tmpFile = CreateFile(); + var tmpFile = CreateFile(identifier: fileContents.GetHashCode().ToString()); File.WriteAllText(tmpFile, fileContents); Action action = () => @@ -342,7 +342,7 @@ public void WhenGivenASolutionWithMissingHeaderVersionItThrows(string fileConten [InlineData("Microsoft Visual\nStudio Solution File,\nFormat Version ")] public void WhenGivenASolutionWithMissingHeaderItThrows(string fileContents) { - var tmpFile = CreateFile(); + var tmpFile = CreateFile(identifier: fileContents.GetHashCode().ToString()); File.WriteAllText(tmpFile, fileContents); Action action = () => diff --git a/src/Tests/Microsoft.DotNet.Cli.Telemetry.PersistenceChannel.Tests/SenderTests.cs b/src/Tests/Microsoft.DotNet.Cli.Telemetry.PersistenceChannel.Tests/SenderTests.cs index e174feaec8a7..4dd7caec8818 100644 --- a/src/Tests/Microsoft.DotNet.Cli.Telemetry.PersistenceChannel.Tests/SenderTests.cs +++ b/src/Tests/Microsoft.DotNet.Cli.Telemetry.PersistenceChannel.Tests/SenderTests.cs @@ -1,6 +1,7 @@ using System; using System.IO; using System.Net; +using System.Runtime.CompilerServices; using System.Threading; using FluentAssertions; using Microsoft.DotNet.Tools.Test.Utilities; @@ -19,16 +20,11 @@ public class SenderTests : SdkTest private Mock StorageBaseMock { get; } - private SenderUnderTest Sender { get; } - public SenderTests(ITestOutputHelper log) : base(log) { StorageBaseMock = new Mock(); TransmissionMock = new Mock(string.Empty, new Uri("http://some/url"), new byte[] { }, string.Empty, string.Empty); - StorageService storageService = CreateStorageService(); - PersistenceTransmitter transmitter = new PersistenceTransmitter(storageService, 0); - Sender = new SenderUnderTest(StorageBaseMock.Object, transmitter); _deleteCount = 0; StorageBaseMock.Setup(storage => storage.Delete(It.IsAny())) .Callback(() => _deleteCount++); @@ -37,6 +33,7 @@ public SenderTests(ITestOutputHelper log) : base(log) [Fact] public void WhenServerReturn503TransmissionWillBeRetried() { + var Sender = GetSenderUnderTest(); int peekCounts = 0; // Setup transmission.SendAsync() to throw WebException that has 503 status Code @@ -63,6 +60,7 @@ public void WhenServerReturn503TransmissionWillBeRetried() [Fact] public void WhenServerReturn400IntervalWillBe10Seconds() { + var Sender = GetSenderUnderTest(); int peekCounts = 0; // Setup transmission.SendAsync() to throw WebException that has 400 status Code @@ -104,6 +102,7 @@ public void DisposeDoesNotThrow() [Fact] public void WhenServerReturnDnsErrorRequestWillBeRetried() { + var Sender = GetSenderUnderTest(); int peekCounts = 0; // Setup transmission.SendAsync() to throw WebException with ProxyNameResolutionFailure failure @@ -170,12 +169,19 @@ protected override bool Send(StorageTransmission transmission, ref TimeSpan next } } - private StorageService CreateStorageService() + private StorageService CreateStorageService([CallerMemberName] string testName = null) { - string tempPath = Path.Combine(_testAssetsManager.CreateTestDirectory("TestStorageService").Path, Path.GetTempFileName()); + string tempPath = Path.Combine(_testAssetsManager.CreateTestDirectory("TestStorageService", identifier: testName).Path, Path.GetTempFileName()); StorageService storageService = new StorageService(); storageService.Init(tempPath); return storageService; } + + private SenderUnderTest GetSenderUnderTest([CallerMemberName] string testName = null) + { + StorageService storageService = CreateStorageService(testName); + PersistenceTransmitter transmitter = new PersistenceTransmitter(storageService, 0); + return new SenderUnderTest(StorageBaseMock.Object, transmitter); + } } } diff --git a/src/Tests/Microsoft.DotNet.ShellShim.Tests/ShellShimRepositoryTests.cs b/src/Tests/Microsoft.DotNet.ShellShim.Tests/ShellShimRepositoryTests.cs index 6eaabd5f755f..4285a0a7d5cf 100644 --- a/src/Tests/Microsoft.DotNet.ShellShim.Tests/ShellShimRepositoryTests.cs +++ b/src/Tests/Microsoft.DotNet.ShellShim.Tests/ShellShimRepositoryTests.cs @@ -27,17 +27,14 @@ namespace Microsoft.DotNet.ShellShim.Tests { public class ShellShimRepositoryTests : SdkTest { - private Lazy _reusedHelloWorldExecutableDll; - public ShellShimRepositoryTests(ITestOutputHelper output) : base(output) { - _reusedHelloWorldExecutableDll = new Lazy(() => MakeHelloWorldExecutableDll("reused")); } [Fact] public void GivenAnExecutablePathItCanGenerateShimFile() { - var outputDll = _reusedHelloWorldExecutableDll.Value; + var outputDll = MakeHelloWorldExecutableDll(); var pathToShim = GetNewCleanFolderUnderTempRoot(); ShellShimRepository shellShimRepository = ConfigBasicTestDependencyShellShimRepository(pathToShim); var shellCommandName = nameof(ShellShimRepositoryTests) + Path.GetRandomFileName(); @@ -53,7 +50,7 @@ public void GivenAnExecutablePathItCanGenerateShimFile() [Fact] public void GivenAnExecutableAndRelativePathToShimPathItCanGenerateShimFile() { - var outputDll = MakeHelloWorldExecutableDll("GivenAnExecutableAndRelativePath"); + var outputDll = MakeHelloWorldExecutableDll(); // To reproduce the bug, dll need to be nested under the shim var parentPathAsShimPath = outputDll.GetDirectoryPath().GetParentPath().GetParentPath().Value; var relativePathToShim = Path.GetRelativePath( @@ -80,7 +77,7 @@ private static ShellShimRepository ConfigBasicTestDependencyShellShimRepository( [Fact] public void GivenAnExecutablePathItCanGenerateShimFileInTransaction() { - var outputDll = _reusedHelloWorldExecutableDll.Value; + var outputDll = MakeHelloWorldExecutableDll(); var pathToShim = GetNewCleanFolderUnderTempRoot(); var shellShimRepository = ConfigBasicTestDependencyShellShimRepository(pathToShim); var shellCommandName = nameof(ShellShimRepositoryTests) + Path.GetRandomFileName(); @@ -101,7 +98,7 @@ public void GivenAnExecutablePathItCanGenerateShimFileInTransaction() [Fact] public void GivenAnExecutablePathDirectoryThatDoesNotExistItCanGenerateShimFile() { - var outputDll = _reusedHelloWorldExecutableDll.Value; + var outputDll = MakeHelloWorldExecutableDll(); var testFolder = _testAssetsManager.CreateTestDirectory().Path; var extraNonExistDirectory = Path.GetRandomFileName(); var shellShimRepository = new ShellShimRepository(new DirectoryPath(Path.Combine(testFolder, extraNonExistDirectory)), GetAppHostTemplateFromStage2()); @@ -118,7 +115,7 @@ public void GivenAnExecutablePathDirectoryThatDoesNotExistItCanGenerateShimFile( [InlineData(" \"arg with ' quote\" ", new[] { "arg with ' quote" })] public void GivenAShimItPassesThroughArguments(string arguments, string[] expectedPassThru) { - var outputDll = _reusedHelloWorldExecutableDll.Value; + var outputDll = MakeHelloWorldExecutableDll(identifier: arguments); var pathToShim = GetNewCleanFolderUnderTempRoot(); var shellShimRepository = ConfigBasicTestDependencyShellShimRepository(pathToShim); var shellCommandName = nameof(ShellShimRepositoryTests) + Path.GetRandomFileName(); @@ -202,7 +199,7 @@ public void GivenAnExceptionItWillRollback(bool testMockBehaviorIsInSync) TransactionScopeOption.Required, TimeSpan.Zero)) { - FilePath targetExecutablePath = _reusedHelloWorldExecutableDll.Value; + FilePath targetExecutablePath = MakeHelloWorldExecutableDll(identifier: testMockBehaviorIsInSync.ToString()); shellShimRepository.CreateShim(targetExecutablePath, new ToolCommandName(shellCommandName)); intendedError(); @@ -259,7 +256,7 @@ public void GivenAnInstalledShimRemoveDeletesTheShimFiles(bool testMockBehaviorI Directory.EnumerateFileSystemEntries(pathToShim).Should().BeEmpty(); - FilePath targetExecutablePath = _reusedHelloWorldExecutableDll.Value; + FilePath targetExecutablePath = MakeHelloWorldExecutableDll(identifier: testMockBehaviorIsInSync.ToString()); shellShimRepository.CreateShim(targetExecutablePath, new ToolCommandName(shellCommandName)); Directory.EnumerateFileSystemEntries(pathToShim).Should().NotBeEmpty(); @@ -289,7 +286,7 @@ public void GivenAnInstalledShimRemoveRollsbackIfTransactionIsAborted(bool testM Directory.EnumerateFileSystemEntries(pathToShim).Should().BeEmpty(); - FilePath targetExecutablePath = _reusedHelloWorldExecutableDll.Value; + FilePath targetExecutablePath = MakeHelloWorldExecutableDll(identifier: testMockBehaviorIsInSync.ToString()); shellShimRepository.CreateShim(targetExecutablePath, new ToolCommandName(shellCommandName)); Directory.EnumerateFileSystemEntries(pathToShim).Should().NotBeEmpty(); @@ -326,7 +323,7 @@ public void GivenAnInstalledShimRemoveCommitsIfTransactionIsCompleted(bool testM Directory.EnumerateFileSystemEntries(pathToShim).Should().BeEmpty(); - FilePath targetExecutablePath = _reusedHelloWorldExecutableDll.Value; + FilePath targetExecutablePath = MakeHelloWorldExecutableDll(identifier: testMockBehaviorIsInSync.ToString()); shellShimRepository.CreateShim(targetExecutablePath, new ToolCommandName(shellCommandName)); Directory.EnumerateFileSystemEntries(pathToShim).Should().NotBeEmpty(); @@ -471,18 +468,11 @@ private static string GetAppHostTemplateFromStage2() return stage2AppHostTemplateDirectory; } - private FilePath MakeHelloWorldExecutableDll(string instanceName = null) + private FilePath MakeHelloWorldExecutableDll([CallerMemberName] string callingMethod = "", string identifier = null) { const string testAppName = "TestAppSimple"; - const string emptySpaceToTestSpaceInPath = " "; - const string directoryNamePostFix = "Test"; - - if (instanceName == null) - { - instanceName = testAppName + emptySpaceToTestSpaceInPath + directoryNamePostFix; - } - var testInstance = _testAssetsManager.CopyTestAsset(testAppName, callingMethod: instanceName) + var testInstance = _testAssetsManager.CopyTestAsset(testAppName, callingMethod: callingMethod, identifier: identifier) .WithSource(); new BuildCommand(testInstance) diff --git a/src/Tests/Microsoft.DotNet.ToolPackage.Tests/ToolPackageInstallerTests.cs b/src/Tests/Microsoft.DotNet.ToolPackage.Tests/ToolPackageInstallerTests.cs index 84b6511c1b9d..6bdfb7ab7d42 100644 --- a/src/Tests/Microsoft.DotNet.ToolPackage.Tests/ToolPackageInstallerTests.cs +++ b/src/Tests/Microsoft.DotNet.ToolPackage.Tests/ToolPackageInstallerTests.cs @@ -101,7 +101,8 @@ public void GivenNugetConfigInstallSucceeds(bool testMockBehaviorIsInSync) var (store, storeQuery, installer, uninstaller, reporter, fileSystem) = Setup( useMock: testMockBehaviorIsInSync, - writeLocalFeedToNugetConfig: nugetConfigPath); + writeLocalFeedToNugetConfig: nugetConfigPath, + identiifer: testMockBehaviorIsInSync.ToString()); var package = installer.InstallPackage(new PackageLocation(nugetConfig: nugetConfigPath), packageId: TestPackageId, @@ -511,7 +512,8 @@ public void GivenAnInstalledPackageUninstallRemovesThePackage(bool testMockBehav var (store, storeQuery, installer, uninstaller, reporter, fileSystem) = Setup( useMock: testMockBehaviorIsInSync, - feeds: GetMockFeedsForSource(source)); + feeds: GetMockFeedsForSource(source), + identiifer: testMockBehaviorIsInSync.ToString()); var package = installer.InstallPackage(new PackageLocation(additionalFeeds: new[] { source }), packageId: TestPackageId, @@ -875,9 +877,10 @@ private static List GetOfflineMockFeed() FilePath? tempProject = null, DirectoryPath? offlineFeed = null, FilePath? writeLocalFeedToNugetConfig = null, - [CallerMemberName] string callingMethod = "") + [CallerMemberName] string callingMethod = "", + string identiifer = null) { - var root = new DirectoryPath(_testAssetsManager.CreateTestDirectory(callingMethod, identifier: useMock.ToString()).Path); + var root = new DirectoryPath(_testAssetsManager.CreateTestDirectory(callingMethod, identifier: useMock.ToString() + identiifer).Path); var reporter = new BufferedReporter(); IFileSystem fileSystem; diff --git a/src/Tests/Microsoft.DotNet.ToolPackage.Tests/ToolPackageUninstallerTests.cs b/src/Tests/Microsoft.DotNet.ToolPackage.Tests/ToolPackageUninstallerTests.cs index a465f8013f83..b954b657db5d 100644 --- a/src/Tests/Microsoft.DotNet.ToolPackage.Tests/ToolPackageUninstallerTests.cs +++ b/src/Tests/Microsoft.DotNet.ToolPackage.Tests/ToolPackageUninstallerTests.cs @@ -21,6 +21,7 @@ using Microsoft.NET.TestFramework.Utilities; using Microsoft.NET.TestFramework; using Xunit.Abstractions; +using System.Runtime.CompilerServices; namespace Microsoft.DotNet.ToolPackage.Tests { @@ -35,7 +36,8 @@ public void GivenAnInstalledPackageUninstallRemovesThePackage(bool testMockBehav var (store, storeQuery, installer, uninstaller, reporter, fileSystem) = Setup( useMock: testMockBehaviorIsInSync, - feeds: GetMockFeedsForSource(source)); + feeds: GetMockFeedsForSource(source), + identifier: testMockBehaviorIsInSync.ToString()); var package = installer.InstallPackage(new PackageLocation(additionalFeeds: new[] { source }), packageId: TestPackageId, @@ -84,9 +86,11 @@ private static List GetMockFeedsForSource(string source) bool useMock, List feeds = null, FilePath? tempProject = null, - DirectoryPath? offlineFeed = null) + DirectoryPath? offlineFeed = null, + [CallerMemberName] string testName = "", + string identifier = null) { - var root = new DirectoryPath(_testAssetsManager.CreateTestDirectory("root").Path); + var root = new DirectoryPath(_testAssetsManager.CreateTestDirectory(testName, identifier).Path); var reporter = new BufferedReporter(); IFileSystem fileSystem; diff --git a/src/Tests/Microsoft.NET.Build.Tests/AppHostTests.cs b/src/Tests/Microsoft.NET.Build.Tests/AppHostTests.cs index bbf60c1fec66..869ac2335918 100644 --- a/src/Tests/Microsoft.NET.Build.Tests/AppHostTests.cs +++ b/src/Tests/Microsoft.NET.Build.Tests/AppHostTests.cs @@ -137,7 +137,7 @@ public void It_uses_an_apphost_based_on_platform_target(string target) var targetFramework = "netcoreapp3.0"; var testAsset = _testAssetsManager - .CopyTestAsset("HelloWorld") + .CopyTestAsset("HelloWorld", identifier: target) .WithSource(); var buildCommand = new BuildCommand(testAsset); diff --git a/src/Tests/Microsoft.NET.Build.Tests/DeleteNuGetArtifactsFixture.cs b/src/Tests/Microsoft.NET.Build.Tests/DeleteNuGetArtifactsFixture.cs index 6c107497d314..1383c2613604 100644 --- a/src/Tests/Microsoft.NET.Build.Tests/DeleteNuGetArtifactsFixture.cs +++ b/src/Tests/Microsoft.NET.Build.Tests/DeleteNuGetArtifactsFixture.cs @@ -5,6 +5,7 @@ using Microsoft.NET.TestFramework.ProjectConstruction; using System; using System.IO; +using System.Runtime.CompilerServices; using System.Text; namespace Microsoft.NET.Build.Tests @@ -17,9 +18,9 @@ public class ConstantStringValues public static string NetstandardTargetFrameworkIdentifier = ".NETStandard"; public static string DependencyDirectoryNamePrefix = "D_"; - public static string ConstructNuGetPackageReferencePath(TestProject dependencyProject) + public static string ConstructNuGetPackageReferencePath(TestProject dependencyProject, string identifier, [CallerMemberName] string callingMethod = null) { - return TestAssetsManager.GetTestDestinationDirectoryPath(dependencyProject.Name, TestDirectoriesNamePrefix, NuGetSharedDirectoryNamePostfix); + return TestAssetsManager.GetTestDestinationDirectoryPath(dependencyProject.Name, callingMethod, identifier); } } diff --git a/src/Tests/Microsoft.NET.Build.Tests/DepsFileSkipTests.cs b/src/Tests/Microsoft.NET.Build.Tests/DepsFileSkipTests.cs index ed9693bcc6b2..2862584dc2d2 100644 --- a/src/Tests/Microsoft.NET.Build.Tests/DepsFileSkipTests.cs +++ b/src/Tests/Microsoft.NET.Build.Tests/DepsFileSkipTests.cs @@ -168,7 +168,7 @@ public void ResourceAssetFromPackageCanBeSkipped() private void TestSkippingFile(TestProject testProject, string filenameToSkip, string assetType) { - var testAsset = _testAssetsManager.CreateTestProject(testProject, testProject.Name) + var testAsset = _testAssetsManager.CreateTestProject(testProject, testProject.Name, identifier: filenameToSkip + assetType) .WithProjectChanges(project => AddSkipTarget(project, filenameToSkip)); var buildCommand = new BuildCommand(testAsset); diff --git a/src/Tests/Microsoft.NET.Build.Tests/GivenFrameworkReferences.cs b/src/Tests/Microsoft.NET.Build.Tests/GivenFrameworkReferences.cs index 48dcca156b27..c57dcb70ce47 100644 --- a/src/Tests/Microsoft.NET.Build.Tests/GivenFrameworkReferences.cs +++ b/src/Tests/Microsoft.NET.Build.Tests/GivenFrameworkReferences.cs @@ -90,7 +90,7 @@ public void Multiple_frameworks_are_written_to_runtimeconfig_for_self_contained_ testProject.SourceFiles.Add("Program.cs", FrameworkReferenceEmptyProgramSource); - TestAsset testAsset = _testAssetsManager.CreateTestProject(testProject) + TestAsset testAsset = _testAssetsManager.CreateTestProject(testProject, identifier: tfm) .Restore(Log, testProject.Name); var buildCommand = new BuildCommand(testAsset); @@ -346,7 +346,7 @@ public void RollForwardCanBeSpecifiedViaProperty(string rollForwardValue, string testProject.AdditionalProperties["RollForward"] = rollForwardValue; - var testAsset = _testAssetsManager.CreateTestProject(testProject); + var testAsset = _testAssetsManager.CreateTestProject(testProject, identifier: rollForwardValue + tfm); var buildCommand = new BuildCommand(testAsset); @@ -395,7 +395,7 @@ public void RollForwardIsNotSupportedOn22(string rollForwardValue, bool valid) testProject.AdditionalProperties["RollForward"] = rollForwardValue; - var testAsset = _testAssetsManager.CreateTestProject(testProject); + var testAsset = _testAssetsManager.CreateTestProject(testProject, identifier: rollForwardValue.GetHashCode().ToString()); var buildCommand = new BuildCommand(testAsset); diff --git a/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeHaveAPackageReferenceWithAliases.cs b/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeHaveAPackageReferenceWithAliases.cs index 7b8520b85381..0d808e187367 100644 --- a/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeHaveAPackageReferenceWithAliases.cs +++ b/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeHaveAPackageReferenceWithAliases.cs @@ -10,6 +10,7 @@ using System.Diagnostics; using System.IO; using System.Linq; +using System.Runtime.CompilerServices; using Xunit; using Xunit.Abstractions; @@ -25,7 +26,7 @@ public GivenThatWeHaveAPackageReferenceWithAliases(ITestOutputHelper log) : base public void CanBuildProjectWithPackageReferencesWithConflictingTypes() { var targetFramework = "net5.0"; - var packageReferences = GetPackageReferencesWithConflictingTypes(targetFramework, "A", "B"); + var packageReferences = GetPackageReferencesWithConflictingTypes(targetFramework, packageNames: new string[] { "A", "B" }); TestProject testProject = new TestProject() { @@ -139,18 +140,20 @@ public void CanBuildProjectWithAPackageReferenceWithMultipleAliases() .Pass(); } - private IEnumerable GetPackageReferencesWithConflictingTypes(string targetFramework, params string[] packageNames) + private IEnumerable GetPackageReferencesWithConflictingTypes(string targetFramework, string[] packageNames, [CallerMemberName] string callingMethod = "") { + var result = new List(); foreach (var packageName in packageNames) { - yield return GetPackageReference(targetFramework, packageName, ClassLibConflictingMethod); + result.Add(GetPackageReference(targetFramework, packageName, ClassLibConflictingMethod, callingMethod, packageName)); } + return result; } - private TestPackageReference GetPackageReference(string targetFramework, string packageName, string projectFileContent) + private TestPackageReference GetPackageReference(string targetFramework, string packageName, string projectFileContent, [CallerMemberName] string callingMethod = "", string identifier = null) { var project = GetProject(targetFramework, packageName, projectFileContent); - var packCommand = new PackCommand(Log, _testAssetsManager.CreateTestProject(project).TestRoot, packageName); + var packCommand = new PackCommand(Log, _testAssetsManager.CreateTestProject(project, callingMethod: callingMethod, identifier: identifier).TestRoot, packageName); packCommand .Execute() diff --git a/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantSatelliteAssembliesHaveassemblyVersion.cs b/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantSatelliteAssembliesHaveassemblyVersion.cs index 9418fac6ffc5..9568009ce725 100644 --- a/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantSatelliteAssembliesHaveassemblyVersion.cs +++ b/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantSatelliteAssembliesHaveassemblyVersion.cs @@ -10,6 +10,7 @@ using System.Diagnostics; using FluentAssertions; using System.Reflection; +using System.Runtime.CompilerServices; namespace Microsoft.NET.Build.Tests { @@ -21,10 +22,10 @@ public GivenThatWeWantSatelliteAssembliesHaveAssemblyVersion(ITestOutputHelper l { } - private void RestoreAndBuildTestAssets() + private void RestoreAndBuildTestAssets([CallerMemberName] string callingMethod = "") { TestAsset testAsset = _testAssetsManager - .CopyTestAsset("AllResourcesInSatelliteDisableVersionGenerate") + .CopyTestAsset("AllResourcesInSatelliteDisableVersionGenerate", callingMethod) .WithSource(); var buildCommand = new BuildCommand(testAsset); diff --git a/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildAComServerLibrary.cs b/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildAComServerLibrary.cs index c68b614025bd..e2311f1f038e 100644 --- a/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildAComServerLibrary.cs +++ b/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildAComServerLibrary.cs @@ -89,7 +89,7 @@ public void It_generates_a_regfree_com_manifest_when_requested() public void It_embeds_the_clsidmap_in_the_comhost_when_rid_specified(string rid) { var testAsset = _testAssetsManager - .CopyTestAsset("ComServer") + .CopyTestAsset("ComServer", rid) .WithSource() .WithProjectChanges(project => { @@ -165,7 +165,7 @@ public void It_fails_to_find_comhost_for_platforms_without_comhost() public void It_fails_to_embed_clsid_when_not_on_windows(string rid) { var testAsset = _testAssetsManager - .CopyTestAsset("ComServer") + .CopyTestAsset("ComServer", identifier: rid) .WithSource() .WithProjectChanges(project => { diff --git a/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildALibrary.cs b/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildALibrary.cs index f9dfe2529125..762af2b37ffc 100644 --- a/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildALibrary.cs +++ b/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildALibrary.cs @@ -79,14 +79,15 @@ internal static List GetValuesFromTestLibrary( string[] msbuildArgs = null, GetValuesCommand.ValueType valueType = GetValuesCommand.ValueType.Item, [CallerMemberName] string callingMethod = "", - Action projectChanges = null) + Action projectChanges = null, + string identifier = null) { msbuildArgs = msbuildArgs ?? Array.Empty(); string targetFramework = "netstandard1.5"; var testAsset = testAssetsManager - .CopyTestAsset("AppWithLibrary", callingMethod) + .CopyTestAsset("AppWithLibrary", callingMethod, identifier: identifier) .WithSource(); if (projectChanges != null) @@ -325,7 +326,7 @@ public void It_implicitly_defines_compilation_constants_for_the_configuration(st public void It_implicitly_defines_compilation_constants_for_the_target_framework(string targetFramework, string[] expectedDefines) { var testAsset = _testAssetsManager - .CopyTestAsset("AppWithLibrary", "ImplicitFrameworkConstants", targetFramework) + .CopyTestAsset("AppWithLibrary", "ImplicitFrameworkConstants", identifier: expectedDefines.GetHashCode().ToString()) .WithSource() .WithProjectChanges(project => { @@ -386,7 +387,7 @@ public void It_implicitly_defines_compilation_constants_for_the_target_platform( { var targetFramework = "net5.0"; var testAsset = _testAssetsManager - .CopyTestAsset("AppWithLibrary", "ImplicitFrameworkConstants", targetFramework) + .CopyTestAsset("AppWithLibrary", "ImplicitFrameworkConstants", identifier: expectedDefines.GetHashCode().ToString()) .WithSource() .WithTargetFramework(targetFramework) .WithProjectChanges(project => @@ -476,7 +477,7 @@ public void It_can_use_implicitly_defined_compilation_constants(string targetFra testProj.AdditionalProperties["TargetPlatformIdentifier"] = targetPlatformIdentifier; testProj.AdditionalProperties["TargetPlatformVersion"] = targetPlatformVersion; } - var testAsset = _testAssetsManager.CreateTestProject(testProj); + var testAsset = _testAssetsManager.CreateTestProject(testProj, targetFramework); File.WriteAllText(Path.Combine(testAsset.Path, testProj.Name, $"{testProj.Name}.cs"), @" using System; class Program @@ -608,7 +609,7 @@ public void It_defines_windows_version_default_correctly(string targetFramework) TargetFrameworks = targetFramework }; testProject.AdditionalProperties["TargetPlatformIdentifier"] = "windows"; - var testAsset = _testAssetsManager.CreateTestProject(testProject); + var testAsset = _testAssetsManager.CreateTestProject(testProject, identifier: targetFramework); var getValuesCommand = new GetValuesCommand(Log, Path.Combine(testAsset.TestRoot, testProject.Name), targetFramework, "TargetPlatformVersion"); getValuesCommand @@ -627,7 +628,7 @@ private void TestInvalidTargetFramework(string testName, string targetFramework, TargetFrameworks = targetFramework, }; - string identifier = useSolution ? "_Solution" : ""; + string identifier = ((useSolution ? "_Solution" : "") + targetFramework + expectedOutput).GetHashCode().ToString(); var testAsset = _testAssetsManager.CreateTestProject(testProject, testProject.Name, identifier); if (targetFramework.Contains(";")) @@ -857,7 +858,8 @@ public void It_can_build_with_dynamic_loading_enabled(string targetFramework, st testProject.AdditionalProperties["CopyLocalLockFileAssemblies"] = copyLocal.ToString().ToLower(); } - var testAsset = _testAssetsManager.CreateTestProject(testProject); + var identifier = targetFramework + shouldSetRollForward + shouldCopyLocal + (rollForwardValue == null? "Null" : rollForwardValue); + var testAsset = _testAssetsManager.CreateTestProject(testProject, identifier: identifier); var buildCommand = new BuildCommand(testAsset); @@ -909,7 +911,7 @@ public void It_makes_RootNamespace_safe_when_project_name_has_spaces(string targ TargetFrameworks = targetFramework, }; - var testAsset = _testAssetsManager.CreateTestProject(testProject); + var testAsset = _testAssetsManager.CreateTestProject(testProject, identifier: targetFramework); // Overwrite the default file. CreateTestProject uses the defined project name for the namespace. // We need a buildable project to extract the property to verify it diff --git a/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildALibraryWithOSSupportedVersion.cs b/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildALibraryWithOSSupportedVersion.cs index ce70bbd95246..4875b2e0799c 100644 --- a/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildALibraryWithOSSupportedVersion.cs +++ b/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildALibraryWithOSSupportedVersion.cs @@ -102,7 +102,7 @@ public void WhenUsingTargetPlatformInTargetFrameworkItCanGenerateSupportedOSPlat { TestProject testProject = SetUpProject(targetFramework); - var testAsset = _testAssetsManager.CreateTestProject(testProject); + var testAsset = _testAssetsManager.CreateTestProject(testProject, identifier: targetFramework); var runCommand = new DotnetCommand(Log, "run"); runCommand.WorkingDirectory = Path.Combine(testAsset.TestRoot, testProject.Name); @@ -226,7 +226,7 @@ public void WhenNotTargetingNet5TargetPlatformMinVersionPropertyCanBeSet(string testProject.AdditionalProperties["TargetPlatformMinVersion"] = "10.0.18362.0"; - var testAsset = _testAssetsManager.CreateTestProject(testProject); + var testAsset = _testAssetsManager.CreateTestProject(testProject, identifier: targetFramework); new BuildCommand(testAsset) .Execute() diff --git a/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildALibraryWithVB.cs b/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildALibraryWithVB.cs index 27c6c7f1c5e2..f17e40638d15 100644 --- a/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildALibraryWithVB.cs +++ b/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildALibraryWithVB.cs @@ -199,7 +199,7 @@ public void It_implicitly_defines_compilation_constants_for_the_configuration(st public void It_implicitly_defines_compilation_constants_for_the_target_framework(string targetFramework, string[] expectedDefines) { var testAsset = _testAssetsManager - .CopyTestAsset("AppWithLibraryVB", "ImplicitFrameworkConstantsVB", targetFramework) + .CopyTestAsset("AppWithLibraryVB", "ImplicitFrameworkConstantsVB", identifier: targetFramework) .WithSource() .WithProjectChanges(project => { diff --git a/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildANetCoreApp.cs b/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildANetCoreApp.cs index 1e7dcd0b492e..0afaabb7061c 100644 --- a/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildANetCoreApp.cs +++ b/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildANetCoreApp.cs @@ -24,6 +24,7 @@ using Xunit.Abstractions; using Microsoft.NET.Build.Tasks; using NuGet.Versioning; +using System.Runtime.CompilerServices; namespace Microsoft.NET.Build.Tests { @@ -33,6 +34,15 @@ public GivenThatWeWantToBuildANetCoreApp(ITestOutputHelper log) : base(log) { } + private BuildCommand GetBuildCommand([CallerMemberName] string callingMethod = "") + { + var testAsset = _testAssetsManager + .CopyTestAsset("HelloWorldWithSubDirs", callingMethod) + .WithSource(); + + return new BuildCommand(testAsset); + } + [Theory] // TargetFramework, RuntimeFrameworkVersion, ExpectedPackageVersion, ExpectedRuntimeFrameworkVersion [InlineData("netcoreapp1.0", null, "1.0.5", "1.0.5")] @@ -206,9 +216,9 @@ public void It_handles_mismatched_implicit_package_versions(bool allowMismatch) string runtimeIdentifier = EnvironmentInfo.GetCompatibleRid(testProject.TargetFrameworks); - testProject.AdditionalProperties["RuntimeIdentifiers"] = runtimeIdentifier; + testProject.AdditionalProperties["RuntimeIdentifiers"] = runtimeIdentifier; - var testAsset = _testAssetsManager.CreateTestProject(testProject) + var testAsset = _testAssetsManager.CreateTestProject(testProject, identifier: allowMismatch.ToString()) .Restore(Log, testProject.Name); var buildCommand = new BuildCommand(testAsset); @@ -445,7 +455,7 @@ public void It_generates_rid_fallback_graph(bool isSelfContained) RuntimeIdentifier = runtimeIdentifier }; - var testAsset = _testAssetsManager.CreateTestProject(project); + var testAsset = _testAssetsManager.CreateTestProject(project, identifier: isSelfContained.ToString()); var buildCommand = new BuildCommand(testAsset); diff --git a/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildASolutionWithNonDefaultConfiguration.cs b/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildASolutionWithNonDefaultConfiguration.cs index 77c64832be23..29f6e8065237 100644 --- a/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildASolutionWithNonDefaultConfiguration.cs +++ b/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildASolutionWithNonDefaultConfiguration.cs @@ -28,7 +28,7 @@ public void Properly_changes_implicit_defines(string configuration, string expec { var targetFramework = "netcoreapp2.1"; var testAsset = _testAssetsManager - .CopyTestAsset("HelloWorld") + .CopyTestAsset("HelloWorld", configuration) .WithSource() .WithProjectChanges(project => { diff --git a/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildASolutionWithNonDefaultConfigurationVB.cs b/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildASolutionWithNonDefaultConfigurationVB.cs index 68b70dc332ab..85f6623351c6 100644 --- a/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildASolutionWithNonDefaultConfigurationVB.cs +++ b/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildASolutionWithNonDefaultConfigurationVB.cs @@ -27,7 +27,7 @@ public void Properly_changes_implicit_defines(string configuration, string expec { var targetFramework = "netcoreapp1.0"; var testAsset = _testAssetsManager - .CopyTestAsset("HelloWorldVB") + .CopyTestAsset("HelloWorldVB", configuration) .WithSource() .WithProjectChanges(project => { diff --git a/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildAWindowsDesktopProject.cs b/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildAWindowsDesktopProject.cs index 807a84549c36..dcc2ffab2f23 100644 --- a/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildAWindowsDesktopProject.cs +++ b/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildAWindowsDesktopProject.cs @@ -204,7 +204,7 @@ public void It_succeeds_if_windows_target_platform_version_does_not_have_trailin testProject.AdditionalProperties["TargetPlatformIdentifier"] = "Windows"; testProject.AdditionalProperties["TargetPlatformVersion"] = "10.0.18362"; } - var testAsset = _testAssetsManager.CreateTestProject(testProject); + var testAsset = _testAssetsManager.CreateTestProject(testProject, setInTargetframework.ToString()); var buildCommand = new BuildCommand(testAsset); buildCommand.Execute() diff --git a/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildAWindowsRuntimeComponent.cs b/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildAWindowsRuntimeComponent.cs index 5b92dd4bb03a..a899a2b262b5 100644 --- a/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildAWindowsRuntimeComponent.cs +++ b/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildAWindowsRuntimeComponent.cs @@ -58,7 +58,7 @@ public void It_fails_when_referencing_winmds_for_net5_0_or_newer() public void It_successfully_builds_when_referencing_winmds(string targetFramework) { var testAsset = _testAssetsManager - .CopyTestAsset("WinMDClassLibrary") + .CopyTestAsset("WinMDClassLibrary", identifier: targetFramework) .WithSource() .WithTargetFramework(targetFramework); diff --git a/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildWithATargetPlatform.cs b/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildWithATargetPlatform.cs index 65d8e93e60c6..84cb43ccb320 100644 --- a/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildWithATargetPlatform.cs +++ b/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildWithATargetPlatform.cs @@ -33,7 +33,7 @@ public void It_defines_target_platform_from_target_framework(string targetFramew Name = "TargetPlatformTests", TargetFrameworks = targetFramework }; - var testAsset = _testAssetsManager.CreateTestProject(testProj); + var testAsset = _testAssetsManager.CreateTestProject(testProj, identifier: targetFramework); Action assertValue = (string valueName, string expected) => { diff --git a/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildWithGlobalJson.cs b/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildWithGlobalJson.cs index 32970cd57f48..cdc988e08964 100644 --- a/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildWithGlobalJson.cs +++ b/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildWithGlobalJson.cs @@ -33,7 +33,7 @@ public void It_fails_build_on_failed_sdk_resolution(bool runningInVS) TargetFrameworks = "net5.0" }; - var testAsset = _testAssetsManager.CreateTestProject(testProject); + var testAsset = _testAssetsManager.CreateTestProject(testProject, identifier: runningInVS.ToString()); var globalJsonPath = Path.Combine(testAsset.Path, testProject.Name, "global.json"); File.WriteAllText(globalJsonPath, @"{ ""sdk"": { diff --git a/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToControlGeneratedAssemblyInfo.cs b/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToControlGeneratedAssemblyInfo.cs index 8e081561ac3e..733a9bc1d11a 100644 --- a/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToControlGeneratedAssemblyInfo.cs +++ b/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToControlGeneratedAssemblyInfo.cs @@ -610,7 +610,7 @@ public void It_includes_repository_url(bool privateRepo) testProject.AdditionalProperties["RepositoryUrl"] = fakeUrl; } - var testAsset = _testAssetsManager.CreateTestProject(testProject); + var testAsset = _testAssetsManager.CreateTestProject(testProject, identifier: privateRepo.ToString()); var buildCommand = new BuildCommand(testAsset); buildCommand.Execute().Should().Pass(); @@ -635,7 +635,7 @@ public void It_does_not_write_to_undefined_assembly_metadata_attribute(string ta testProject.AdditionalProperties["RepositoryUrl"] = fakeUrl; - var testAsset = _testAssetsManager.CreateTestProject(testProject); + var testAsset = _testAssetsManager.CreateTestProject(testProject, identifier: targetFramework); var buildCommand = new BuildCommand(Log, Path.Combine(testAsset.TestRoot, testProject.Name)); buildCommand.Execute() diff --git a/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToProduceReferenceAssembly.cs b/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToProduceReferenceAssembly.cs index 11c7f8230691..51c66401249d 100644 --- a/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToProduceReferenceAssembly.cs +++ b/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToProduceReferenceAssembly.cs @@ -30,7 +30,7 @@ public void It_produces_ref_assembly_for_appropriate_frameworks(string targetFra TargetFrameworks = targetFramework }; - var testAsset = _testAssetsManager.CreateTestProject(testProject); + var testAsset = _testAssetsManager.CreateTestProject(testProject, identifier: targetFramework); var buildCommand = new BuildCommand(testAsset); buildCommand.Execute() diff --git a/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToReferenceAProject.cs b/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToReferenceAProject.cs index 680274fa2372..d1a908dfc15c 100644 --- a/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToReferenceAProject.cs +++ b/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToReferenceAProject.cs @@ -177,7 +177,7 @@ public void It_disables_copying_conflicting_transitive_content(bool copyConflict TargetFrameworks = tfm, Name = "ChildProject", }; - var childAsset = _testAssetsManager.CreateTestProject(childProject) + var childAsset = _testAssetsManager.CreateTestProject(childProject, identifier: copyConflictingTransitiveContent.ToString() + explicitlySet.ToString()) .WithProjectChanges(project => AddProjectChanges(project)); File.WriteAllText(Path.Combine(childAsset.Path, childProject.Name, contentName), childProject.Name); @@ -190,7 +190,7 @@ public void It_disables_copying_conflicting_transitive_content(bool copyConflict { parentProject.AdditionalProperties["CopyConflictingTransitiveContent"] = copyConflictingTransitiveContent.ToString().ToLower(); } - var parentAsset = _testAssetsManager.CreateTestProject(parentProject) + var parentAsset = _testAssetsManager.CreateTestProject(parentProject, identifier: copyConflictingTransitiveContent.ToString() + explicitlySet.ToString()) .WithProjectChanges(project => AddProjectChanges(project, Path.Combine(childAsset.Path, childProject.Name, childProject.Name + ".csproj"))); File.WriteAllText(Path.Combine(parentAsset.Path, parentProject.Name, contentName), parentProject.Name); diff --git a/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToReferenceAnAssembly.cs b/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToReferenceAnAssembly.cs index 2029010340e8..1f3dab17fd70 100644 --- a/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToReferenceAnAssembly.cs +++ b/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToReferenceAnAssembly.cs @@ -448,7 +448,7 @@ public void ItRunsAppsReferencingAProjectDirectlyReferencingAssemblies( return; } - string identifier = referencerTarget.ToString() + "_" + dependencyTarget.ToString(); + string identifier = referencerTarget.ToString() + "_" + dependencyTarget.ToString() + "_" + dllDependencyTarget.ToString(); TestProject dllDependencyProject = new TestProject() { @@ -533,7 +533,7 @@ public void ItRunsAppsReferencingAProjectDirectlyReferencingAssembliesWithSatell return; } - string identifier = referencerTarget.ToString() + "_" + dependencyTarget.ToString(); + string identifier = referencerTarget.ToString() + "_" + dependencyTarget.ToString() + "_" + dllDependencyTarget.ToString(); TestProject dllDependencyProject = new TestProject() { @@ -673,7 +673,7 @@ public void ItRunsAppsReferencingAProjectDirectlyReferencingAssembliesWhichRefer return; } - string identifier = referencerTarget.ToString() + "_" + dependencyTarget.ToString(); + string identifier = referencerTarget.ToString() + "_" + dependencyTarget.ToString() + "_" + dllDependencyTarget.ToString(); TestProject dllDependencyProjectDependency = new TestProject() { @@ -775,7 +775,7 @@ public void ItRunsAppsReferencingAProjectDirectlyReferencingAssembliesWhichRefer return; } - string identifier = referencerTarget.ToString() + "_" + dependencyTarget.ToString(); + string identifier = referencerTarget.ToString() + "_" + dependencyTarget.ToString() + "_" + dllDependencyTarget.ToString(); TestProject dllDependencyProjectDependency = new TestProject() { diff --git a/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToResolveConflicts.cs b/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToResolveConflicts.cs index e6f9c39852dc..a0bdf9ab64b1 100644 --- a/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToResolveConflicts.cs +++ b/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToResolveConflicts.cs @@ -37,7 +37,8 @@ public void The_same_references_are_used_with_or_without_DisableDefaultPackageCo defaultProject, expectConflicts: false, references: out List defaultReferences, - referenceCopyLocalPaths: out List defaultReferenceCopyLocalPaths); + referenceCopyLocalPaths: out List defaultReferenceCopyLocalPaths, + targetFramework); var disableProject = new TestProject() { @@ -50,7 +51,8 @@ public void The_same_references_are_used_with_or_without_DisableDefaultPackageCo disableProject, expectConflicts: true, references: out List disableReferences, - referenceCopyLocalPaths: out List disableReferenceCopyLocalPaths); + referenceCopyLocalPaths: out List disableReferenceCopyLocalPaths, + targetFramework); Assert.Equal(defaultReferences, disableReferences); Assert.Equal(defaultReferenceCopyLocalPaths, disableReferenceCopyLocalPaths); @@ -64,10 +66,10 @@ private void AddConflictReferences(TestProject testProject) } } - private void GetReferences(TestProject testProject, bool expectConflicts, out List references, out List referenceCopyLocalPaths) + private void GetReferences(TestProject testProject, bool expectConflicts, out List references, out List referenceCopyLocalPaths, string identifier) { string targetFramework = testProject.TargetFrameworks; - TestAsset tempTestAsset = _testAssetsManager.CreateTestProject(testProject); + TestAsset tempTestAsset = _testAssetsManager.CreateTestProject(testProject, identifier: identifier); string projectFolder = Path.Combine(tempTestAsset.TestRoot, testProject.Name); diff --git a/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToVerifyNuGetReferenceCompat.cs b/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToVerifyNuGetReferenceCompat.cs index 46ede4f6cd31..b82b65ae9815 100644 --- a/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToVerifyNuGetReferenceCompat.cs +++ b/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToVerifyNuGetReferenceCompat.cs @@ -13,6 +13,7 @@ using System.Runtime.InteropServices; using System.Linq; using Xunit.Abstractions; +using System.Runtime.CompilerServices; namespace Microsoft.NET.Build.Tests { @@ -63,7 +64,7 @@ public void Nuget_reference_compat(string referencerTarget, string testDescripti TestPackageReference dependencyPackageReference = new TestPackageReference( dependencyProject.Name, "1.0.0", - ConstantStringValues.ConstructNuGetPackageReferencePath(dependencyProject)); + ConstantStringValues.ConstructNuGetPackageReferencePath(dependencyProject, identifier: referencerTarget + testDescription + rawDependencyTargets)); // Skip creating the NuGet package if not running on Windows; or if the NuGet package already exists // https://github.com/dotnet/sdk/issues/335 @@ -72,7 +73,7 @@ public void Nuget_reference_compat(string referencerTarget, string testDescripti if (!dependencyPackageReference.NuGetPackageExists()) { // Create the NuGet packages - var dependencyTestAsset = _testAssetsManager.CreateTestProject(dependencyProject, ConstantStringValues.TestDirectoriesNamePrefix, ConstantStringValues.NuGetSharedDirectoryNamePostfix); + var dependencyTestAsset = _testAssetsManager.CreateTestProject(dependencyProject, identifier: referencerTarget + testDescription + rawDependencyTargets); var dependencyRestoreCommand = dependencyTestAsset.GetRestoreCommand(Log, relativePath: dependencyProject.Name).Execute().Should().Pass(); var dependencyProjectDirectory = Path.Combine(dependencyTestAsset.TestRoot, dependencyProject.Name); @@ -141,7 +142,7 @@ public void Netfx_is_implicit_for_Netstandard_and_Netcore_20(string targetFramew { var testProjectName = targetFramework.Replace(".", "_") + "implicit_atf"; - var (testProjectTestAsset, testPackageReference) = CreateTestAsset(testProjectName, targetFramework, "net461"); + var (testProjectTestAsset, testPackageReference) = CreateTestAsset(testProjectName, targetFramework, "net461", identifer: targetFramework); var restoreCommand = testProjectTestAsset.GetRestoreCommand(Log, relativePath: testProjectName); @@ -161,7 +162,7 @@ public void Netfx_is_not_implicit_for_Netstandard_and_Netcore_less_than_20(strin { var testProjectName = targetFramework.Replace(".", "_") + "non_implicit_atf"; - var (testProjectTestAsset, testPackageReference) = CreateTestAsset(testProjectName, targetFramework, "net461"); + var (testProjectTestAsset, testPackageReference) = CreateTestAsset(testProjectName, targetFramework, "net461", identifer: targetFramework); var restoreCommand = testProjectTestAsset.GetRestoreCommand(Log, relativePath: testProjectName); NuGetConfigWriter.Write(testProjectTestAsset.TestRoot, Path.GetDirectoryName(testPackageReference.NupkgPath)); @@ -214,9 +215,11 @@ public void It_chooses_lowest_netfx_in_default_atf() string testProjectName, string callerTargetFramework, string calleeTargetFrameworks, - Dictionary additionalProperties = null) + Dictionary additionalProperties = null, + [CallerMemberName] string testName = null, + string identifer = null) { - var testPackageReference = CreateTestPackage(calleeTargetFrameworks); + var testPackageReference = CreateTestPackage(calleeTargetFrameworks, testName, identifer); var testProject = new TestProject @@ -243,7 +246,7 @@ public void It_chooses_lowest_netfx_in_default_atf() return (testProjectTestAsset, testPackageReference); } - private TestPackageReference CreateTestPackage(string targetFrameworks) + private TestPackageReference CreateTestPackage(string targetFrameworks, string identifier, [CallerMemberName] string callingMethod = "") { var project = new TestProject @@ -256,15 +259,15 @@ private TestPackageReference CreateTestPackage(string targetFrameworks) new TestPackageReference( project.Name, "1.0.0", - ConstantStringValues.ConstructNuGetPackageReferencePath(project)); + ConstantStringValues.ConstructNuGetPackageReferencePath(project, identifier, callingMethod)); if (!packageReference.NuGetPackageExists()) { var testAsset = _testAssetsManager.CreateTestProject( project, - ConstantStringValues.TestDirectoriesNamePrefix, - ConstantStringValues.NuGetSharedDirectoryNamePostfix); + callingMethod, + identifier); var packageRestoreCommand = testAsset.GetRestoreCommand(Log, relativePath: project.Name).Execute().Should().Pass(); var dependencyProjectDirectory = Path.Combine(testAsset.TestRoot, project.Name); diff --git a/src/Tests/Microsoft.NET.Build.Tests/GivenThereAreDefaultItems.cs b/src/Tests/Microsoft.NET.Build.Tests/GivenThereAreDefaultItems.cs index bd0f27fd6b77..0f3f8ca73578 100644 --- a/src/Tests/Microsoft.NET.Build.Tests/GivenThereAreDefaultItems.cs +++ b/src/Tests/Microsoft.NET.Build.Tests/GivenThereAreDefaultItems.cs @@ -292,7 +292,7 @@ public void It_allows_a_CSharp_file_to_be_used_as_an_EmbeddedResource() compileItems.Should().BeEquivalentTo(expectedItems); - var embeddedResourceItems = GivenThatWeWantToBuildALibrary.GetValuesFromTestLibrary(Log, _testAssetsManager, "EmbeddedResource", setup, projectChanges: projectChanges); + var embeddedResourceItems = GivenThatWeWantToBuildALibrary.GetValuesFromTestLibrary(Log, _testAssetsManager, "EmbeddedResource", setup, projectChanges: projectChanges, identifier: "EmbeddedResource"); var expectedEmbeddedResourceItems = new[] { @@ -343,7 +343,7 @@ public void It_allows_a_CSharp_file_to_be_used_as_Content() compileItems.Should().BeEquivalentTo(expectedItems); - var contentItems = GivenThatWeWantToBuildALibrary.GetValuesFromTestLibrary(Log, _testAssetsManager, "Content", setup, projectChanges: projectChanges); + var contentItems = GivenThatWeWantToBuildALibrary.GetValuesFromTestLibrary(Log, _testAssetsManager, "Content", setup, projectChanges: projectChanges, identifier: "Content"); var expectedContentItems = new[] { @@ -354,7 +354,7 @@ public void It_allows_a_CSharp_file_to_be_used_as_Content() contentItems.Should().BeEquivalentTo(expectedContentItems); - var noneItems = GivenThatWeWantToBuildALibrary.GetValuesFromTestLibrary(Log, _testAssetsManager, "None", setup, projectChanges: projectChanges); + var noneItems = GivenThatWeWantToBuildALibrary.GetValuesFromTestLibrary(Log, _testAssetsManager, "None", setup, projectChanges: projectChanges, identifier: expectedContentItems.GetHashCode().ToString()); var expectedNoneItems = new[] { diff --git a/src/Tests/Microsoft.NET.Build.Tests/GivenWeWantToRequireWindowsForDesktopApps.cs b/src/Tests/Microsoft.NET.Build.Tests/GivenWeWantToRequireWindowsForDesktopApps.cs index ac21c95eb5d2..ad991ec4064e 100644 --- a/src/Tests/Microsoft.NET.Build.Tests/GivenWeWantToRequireWindowsForDesktopApps.cs +++ b/src/Tests/Microsoft.NET.Build.Tests/GivenWeWantToRequireWindowsForDesktopApps.cs @@ -13,6 +13,7 @@ using Xunit; using Xunit.Abstractions; using System.Linq; +using System.Runtime.CompilerServices; namespace Microsoft.NET.Build.Tests { @@ -29,7 +30,7 @@ public void It_builds_on_windows_with_the_windows_desktop_sdk(string uiFramework { const string ProjectName = "WindowsDesktopSdkTest"; - var asset = CreateWindowsDesktopSdkTestAsset(ProjectName, uiFrameworkProperty); + var asset = CreateWindowsDesktopSdkTestAsset(ProjectName, uiFrameworkProperty, uiFrameworkProperty); var command = new BuildCommand(asset); @@ -46,7 +47,7 @@ public void It_errors_on_nonwindows_with_the_windows_desktop_sdk(string uiFramew { const string ProjectName = "WindowsDesktopSdkErrorTest"; - var asset = CreateWindowsDesktopSdkTestAsset(ProjectName, uiFrameworkProperty); + var asset = CreateWindowsDesktopSdkTestAsset(ProjectName, uiFrameworkProperty, uiFrameworkProperty); var command = new BuildCommand(asset); @@ -66,7 +67,7 @@ public void It_builds_on_windows_with_a_framework_reference(string desktopFramew { const string ProjectName = "WindowsDesktopReferenceTest"; - var asset = CreateWindowsDesktopReferenceTestAsset(ProjectName, desktopFramework); + var asset = CreateWindowsDesktopReferenceTestAsset(ProjectName, desktopFramework, desktopFramework); var command = new BuildCommand(asset); @@ -84,7 +85,7 @@ public void It_errors_on_nonwindows_with_a_framework_reference(string desktopFra { const string ProjectName = "WindowsDesktopReferenceErrorTest"; - var asset = CreateWindowsDesktopReferenceTestAsset(ProjectName, desktopFramework); + var asset = CreateWindowsDesktopReferenceTestAsset(ProjectName, desktopFramework, desktopFramework); var command = new BuildCommand(asset); @@ -111,7 +112,7 @@ public void It_infers_WinExe_output_type(string targetFramework, string propName }; testProject.AdditionalProperties[propName] = propValue; - var asset = _testAssetsManager.CreateTestProject(testProject); + var asset = _testAssetsManager.CreateTestProject(testProject, identifier: targetFramework + propName + propValue); var getValuesCommand = new GetValuesCommand(asset, "OutputType"); getValuesCommand @@ -291,7 +292,7 @@ from item in publishItemsOutputGroupOutputsCommand.GetValuesWithMetadata() .Pass(); } - private TestAsset CreateWindowsDesktopSdkTestAsset(string projectName, string uiFrameworkProperty) + private TestAsset CreateWindowsDesktopSdkTestAsset(string projectName, string uiFrameworkProperty, string identifier, [CallerMemberName] string callingMethod = "") { const string tfm = "netcoreapp3.0"; @@ -305,10 +306,10 @@ private TestAsset CreateWindowsDesktopSdkTestAsset(string projectName, string ui testProject.AdditionalProperties.Add(uiFrameworkProperty, "true"); - return _testAssetsManager.CreateTestProject(testProject); + return _testAssetsManager.CreateTestProject(testProject, callingMethod, identifier); } - private TestAsset CreateWindowsDesktopReferenceTestAsset(string projectName, string desktopFramework) + private TestAsset CreateWindowsDesktopReferenceTestAsset(string projectName, string desktopFramework, string identifier, [CallerMemberName] string callingMethod = "") { const string tfm = "netcoreapp3.0"; @@ -321,7 +322,7 @@ private TestAsset CreateWindowsDesktopReferenceTestAsset(string projectName, str testProject.FrameworkReferences.Add(desktopFramework); - return _testAssetsManager.CreateTestProject(testProject); + return _testAssetsManager.CreateTestProject(testProject, callingMethod, identifier); } private readonly string _fileUseWindowsType = @" diff --git a/src/Tests/Microsoft.NET.Pack.Tests/GivenThatThereAreImplicitPackageReferences.cs b/src/Tests/Microsoft.NET.Pack.Tests/GivenThatThereAreImplicitPackageReferences.cs index d37c92140c2e..5056526f686f 100644 --- a/src/Tests/Microsoft.NET.Pack.Tests/GivenThatThereAreImplicitPackageReferences.cs +++ b/src/Tests/Microsoft.NET.Pack.Tests/GivenThatThereAreImplicitPackageReferences.cs @@ -167,7 +167,7 @@ public void Package_an_aspnetcore_2_1_app_does_not_include_the_implicit_dependen testProject.PackageReferences.Add(new TestPackageReference(packageId, "")); - var dependencies = PackAndGetDependencies(testProject); + var dependencies = PackAndGetDependencies(testProject, packageId); dependencies.Should().BeEmpty(); @@ -265,9 +265,9 @@ private List GetFrameworkAssemblies(XDocument nuspec, out XNamespace n .ToList(); } - private XDocument PackAndGetNuspec(TestProject testProject) + private XDocument PackAndGetNuspec(TestProject testProject, string identifier = null) { - var testProjectInstance = _testAssetsManager.CreateTestProject(testProject, testProject.Name); + var testProjectInstance = _testAssetsManager.CreateTestProject(testProject, testProject.Name, identifier); var packCommand = new PackCommand(Log, testProjectInstance.TestRoot, testProject.Name); @@ -280,9 +280,9 @@ private XDocument PackAndGetNuspec(TestProject testProject) return nuspec; } - private List PackAndGetDependencies(TestProject testProject) + private List PackAndGetDependencies(TestProject testProject, string identifier = null) { - var dependencyGroups = GetDependencyGroups(PackAndGetNuspec(testProject), out var ns); + var dependencyGroups = GetDependencyGroups(PackAndGetNuspec(testProject, identifier), out var ns); // There should be only one dependency group for these tests dependencyGroups.Count().Should().Be(1); diff --git a/src/Tests/Microsoft.NET.Pack.Tests/GivenThatWeWantToPackANetFrameworkLibrary.cs b/src/Tests/Microsoft.NET.Pack.Tests/GivenThatWeWantToPackANetFrameworkLibrary.cs index 9655a74f7d6e..bc58d7e3059b 100644 --- a/src/Tests/Microsoft.NET.Pack.Tests/GivenThatWeWantToPackANetFrameworkLibrary.cs +++ b/src/Tests/Microsoft.NET.Pack.Tests/GivenThatWeWantToPackANetFrameworkLibrary.cs @@ -56,6 +56,7 @@ public void ExplicitReferencesAreIncludedAsFrameworkReferences() }; var nuspecPath = PackAndGetNuspecPath(testProject, + "PackImplicitRefs", p => { var pns = p.Root.Name.Namespace; @@ -78,9 +79,9 @@ public void ExplicitReferencesAreIncludedAsFrameworkReferences() frameworkAssemblies.Should().Contain(i => i.Attribute("assemblyName").Value == "System.Xml.Linq"); } - private string PackAndGetNuspecPath(TestProject testProject, Action xmlAction = null) + private string PackAndGetNuspecPath(TestProject testProject, string identifier = null, Action xmlAction = null) { - var testProjectInstance = _testAssetsManager.CreateTestProject(testProject, testProject.Name); + var testProjectInstance = _testAssetsManager.CreateTestProject(testProject, testProject.Name, identifier); if (xmlAction != null) { diff --git a/src/Tests/Microsoft.NET.Pack.Tests/GivenThatWeWantToPackAProjectTool.cs b/src/Tests/Microsoft.NET.Pack.Tests/GivenThatWeWantToPackAProjectTool.cs index 446d43c73255..3996df30851e 100644 --- a/src/Tests/Microsoft.NET.Pack.Tests/GivenThatWeWantToPackAProjectTool.cs +++ b/src/Tests/Microsoft.NET.Pack.Tests/GivenThatWeWantToPackAProjectTool.cs @@ -24,7 +24,7 @@ public void It_packs_project_tools_targeting_netcoreapp2_2() { TestProject toolProject = new TestProject() { - Name = "TestTool", + Name = "TestToolNetCore22", TargetFrameworks = "netcoreapp2.2", IsExe = true }; diff --git a/src/Tests/Microsoft.NET.Publish.Tests/FilesCopiedToPublishDirTests.cs b/src/Tests/Microsoft.NET.Publish.Tests/FilesCopiedToPublishDirTests.cs index 9e79a92f0918..c99b7fb19534 100644 --- a/src/Tests/Microsoft.NET.Publish.Tests/FilesCopiedToPublishDirTests.cs +++ b/src/Tests/Microsoft.NET.Publish.Tests/FilesCopiedToPublishDirTests.cs @@ -55,7 +55,7 @@ public void RunFilesCopiedToPublishDirTest(bool specifyRid, bool singleFile) testProject.AdditionalProperties["PublishSingleFile"] = "true"; } - var testAsset = _testAssetsManager.CreateTestProject(testProject); + var testAsset = _testAssetsManager.CreateTestProject(testProject, identifier: specifyRid.ToString() + singleFile.ToString()); var restoreCommand = new RestoreCommand(testAsset); restoreCommand diff --git a/src/Tests/Microsoft.NET.Publish.Tests/GivenThatAPublishedDepsJsonShouldContainVersionInformation.cs b/src/Tests/Microsoft.NET.Publish.Tests/GivenThatAPublishedDepsJsonShouldContainVersionInformation.cs index 8c9ecba3da49..ee759c7a66b4 100644 --- a/src/Tests/Microsoft.NET.Publish.Tests/GivenThatAPublishedDepsJsonShouldContainVersionInformation.cs +++ b/src/Tests/Microsoft.NET.Publish.Tests/GivenThatAPublishedDepsJsonShouldContainVersionInformation.cs @@ -223,7 +223,7 @@ public static void Main() // framework installed. So we get the RuntimeFrameworkVersion of an app // that targets .NET Core 2.1, and then use the --fx-version parameter to the host // to force the .NET Core 2.0 app to run on that version - string rollForwardVersion = GetRollForwardNetCoreAppVersion(); + string rollForwardVersion = GetRollForwardNetCoreAppVersion(callingMethod); var runAppCommand = new DotnetCommand(Log, "exec", "--fx-version", rollForwardVersion, exePath ); @@ -243,7 +243,7 @@ public static void Main() } - string GetRollForwardNetCoreAppVersion() + string GetRollForwardNetCoreAppVersion([CallerMemberName] string callingMethod = "", string identifier = null) { var testProject = new TestProject() { @@ -253,7 +253,7 @@ string GetRollForwardNetCoreAppVersion() }; testProject.AdditionalProperties.Add("TargetLatestRuntimePatch", "true"); - var testAsset = _testAssetsManager.CreateTestProject(testProject) + var testAsset = _testAssetsManager.CreateTestProject(testProject, callingMethod, identifier) .Restore(Log, testProject.Name); LockFile lockFile = LockFileUtilities.GetLockFile(Path.Combine(testAsset.TestRoot, testProject.Name, diff --git a/src/Tests/Microsoft.NET.Publish.Tests/GivenThatWeWantToFilterSatelliteAssemblies.cs b/src/Tests/Microsoft.NET.Publish.Tests/GivenThatWeWantToFilterSatelliteAssemblies.cs index 1a6da9d913ef..6387a33fdc48 100644 --- a/src/Tests/Microsoft.NET.Publish.Tests/GivenThatWeWantToFilterSatelliteAssemblies.cs +++ b/src/Tests/Microsoft.NET.Publish.Tests/GivenThatWeWantToFilterSatelliteAssemblies.cs @@ -36,7 +36,7 @@ public void It_only_publishes_selected_ResourceLanguages(string tfm) testProject.PackageReferences.Add(new TestPackageReference("System.Spatial", "5.8.3")); testProject.AdditionalProperties.Add("SatelliteResourceLanguages", "en-US;it;fr"); - var testProjectInstance = _testAssetsManager.CreateTestProject(testProject); + var testProjectInstance = _testAssetsManager.CreateTestProject(testProject, identifier: tfm); var publishCommand = new PublishCommand(testProjectInstance); var publishResult = publishCommand.Execute(); diff --git a/src/Tests/Microsoft.NET.Publish.Tests/GivenThatWeWantToPublishAHelloWorldProject.cs b/src/Tests/Microsoft.NET.Publish.Tests/GivenThatWeWantToPublishAHelloWorldProject.cs index 73514c103390..e7697a5618e8 100644 --- a/src/Tests/Microsoft.NET.Publish.Tests/GivenThatWeWantToPublishAHelloWorldProject.cs +++ b/src/Tests/Microsoft.NET.Publish.Tests/GivenThatWeWantToPublishAHelloWorldProject.cs @@ -443,7 +443,7 @@ public void It_preserves_newest_files_on_publish(string tfm) IsExe = true }; - var testAsset = _testAssetsManager.CreateTestProject(testProject, testProject.Name); + var testAsset = _testAssetsManager.CreateTestProject(testProject, testProject.Name, identifier: tfm); var publishCommand = new PublishCommand(testAsset); @@ -579,7 +579,8 @@ public void It_publishes_with_a_publish_profile(bool? selfContained, bool? useAp IsExe = true, }; - var testProjectInstance = _testAssetsManager.CreateTestProject(testProject); + var identifer = (selfContained == null ? "null" : selfContained.ToString()) + (useAppHost == null ? "null" : useAppHost.ToString()); + var testProjectInstance = _testAssetsManager.CreateTestProject(testProject, identifier: identifer); var projectDirectory = Path.Combine(testProjectInstance.Path, testProject.Name); var publishProfilesDirectory = Path.Combine(projectDirectory, "Properties", "PublishProfiles"); diff --git a/src/Tests/Microsoft.NET.Publish.Tests/GivenThatWeWantToPublishASingleFileApp.cs b/src/Tests/Microsoft.NET.Publish.Tests/GivenThatWeWantToPublishASingleFileApp.cs index 50944bdcb4e3..c6a1fdd34229 100644 --- a/src/Tests/Microsoft.NET.Publish.Tests/GivenThatWeWantToPublishASingleFileApp.cs +++ b/src/Tests/Microsoft.NET.Publish.Tests/GivenThatWeWantToPublishASingleFileApp.cs @@ -14,6 +14,7 @@ using System.Collections.Generic; using System.IO; using System.Runtime.InteropServices; +using System.Runtime.CompilerServices; namespace Microsoft.NET.Publish.Tests { @@ -51,10 +52,10 @@ public GivenThatWeWantToPublishASingleFileApp(ITestOutputHelper log) : base(log) { } - private PublishCommand GetPublishCommand() + private PublishCommand GetPublishCommand(string identifier = null, [CallerMemberName] string callingMethod = "") { var testAsset = _testAssetsManager - .CopyTestAsset(TestProjectName) + .CopyTestAsset(TestProjectName, callingMethod, identifier) .WithSource(); // Create the following content: @@ -326,7 +327,7 @@ public void It_generates_a_single_file_including_pdbs(string targetFramework) IsExe = true, }; - var testAsset = _testAssetsManager.CreateTestProject(testProject); + var testAsset = _testAssetsManager.CreateTestProject(testProject, identifier: targetFramework); var publishCommand = new PublishCommand(testAsset); publishCommand @@ -383,7 +384,7 @@ public void It_can_include_ni_pdbs_in_single_file(string targetFramework) IsExe = true, }; - var testAsset = _testAssetsManager.CreateTestProject(testProject); + var testAsset = _testAssetsManager.CreateTestProject(testProject, identifier: targetFramework); var publishCommand = new PublishCommand(testAsset); publishCommand @@ -402,7 +403,7 @@ public void It_can_include_ni_pdbs_in_single_file(string targetFramework) [InlineData(ExcludeAlways, AlwaysContent)] public void It_generates_a_single_file_excluding_content(string exclusion, string content) { - var publishCommand = GetPublishCommand(); + var publishCommand = GetPublishCommand(exclusion); publishCommand .Execute(PublishSingleFile, RuntimeIdentifier, IncludeAllContent, PlaceStamp, exclusion) .Should() @@ -558,7 +559,7 @@ public void It_errors_when_including_symbols_targeting_net5(bool selfContained) }; testProject.AdditionalProperties.Add("SelfContained", $"{selfContained}"); - var testAsset = _testAssetsManager.CreateTestProject(testProject); + var testAsset = _testAssetsManager.CreateTestProject(testProject, identifier: selfContained.ToString()); var publishCommand = new PublishCommand(testAsset); publishCommand.Execute(PublishSingleFile, RuntimeIdentifier, IncludePdb) diff --git a/src/Tests/Microsoft.NET.Publish.Tests/GivenThatWeWantToPublishAWebApp.cs b/src/Tests/Microsoft.NET.Publish.Tests/GivenThatWeWantToPublishAWebApp.cs index 4b3b30a2dce7..4d710fe839b2 100644 --- a/src/Tests/Microsoft.NET.Publish.Tests/GivenThatWeWantToPublishAWebApp.cs +++ b/src/Tests/Microsoft.NET.Publish.Tests/GivenThatWeWantToPublishAWebApp.cs @@ -133,7 +133,7 @@ public void It_should_publish_framework_dependent_for_2x(string platformLibrary) testProject.PackageReferences.Add(new TestPackageReference(platformLibrary)); testProject.PackageReferences.Add(new TestPackageReference("Microsoft.AspNetCore.Razor.Design", version: "2.2.0", privateAssets: "all")); - var testProjectInstance = _testAssetsManager.CreateTestProject(testProject); + var testProjectInstance = _testAssetsManager.CreateTestProject(testProject, platformLibrary); var command = new PublishCommand(testProjectInstance); @@ -184,7 +184,8 @@ public void It_publishes_with_a_publish_profile(bool? selfContained, bool? useAp testProject.PackageReferences.Add(new TestPackageReference("Microsoft.AspNetCore.App")); testProject.PackageReferences.Add(new TestPackageReference("Microsoft.AspNetCore.Razor.Design", version: "2.2.0", privateAssets: "all")); - var testProjectInstance = _testAssetsManager.CreateTestProject(testProject); + var identifier = (selfContained == null ? "null" : selfContained.ToString()) + (useAppHost == null ? "null" : useAppHost.ToString()); + var testProjectInstance = _testAssetsManager.CreateTestProject(testProject, identifier: identifier); var projectDirectory = Path.Combine(testProjectInstance.Path, testProject.Name); var publishProfilesDirectory = Path.Combine(projectDirectory, "Properties", "PublishProfiles"); diff --git a/src/Tests/Microsoft.NET.Publish.Tests/GivenThatWeWantToPublishReadyToRun.cs b/src/Tests/Microsoft.NET.Publish.Tests/GivenThatWeWantToPublishReadyToRun.cs index 177ac632ee3a..3717f24adafa 100644 --- a/src/Tests/Microsoft.NET.Publish.Tests/GivenThatWeWantToPublishReadyToRun.cs +++ b/src/Tests/Microsoft.NET.Publish.Tests/GivenThatWeWantToPublishReadyToRun.cs @@ -2,6 +2,7 @@ using System.IO; using System.Reflection.Metadata; using System.Reflection.PortableExecutable; +using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using FluentAssertions; using Microsoft.NET.Build.Tasks; @@ -31,7 +32,7 @@ public void It_only_runs_readytorun_compiler_when_switch_is_enabled(string targe projectName, "ClassLib"); - var testProjectInstance = _testAssetsManager.CreateTestProject(testProject); + var testProjectInstance = _testAssetsManager.CreateTestProject(testProject, identifier: targetFramework); var publishCommand = new PublishCommand(testProjectInstance); publishCommand.Execute().Should().Pass(); @@ -61,7 +62,7 @@ public void It_creates_readytorun_images_for_all_assemblies_except_excluded_ones testProject.AdditionalProperties["PublishReadyToRun"] = "True"; testProject.AdditionalItems["PublishReadyToRunExclude"] = "Classlib.dll"; - var testProjectInstance = _testAssetsManager.CreateTestProject(testProject); + var testProjectInstance = _testAssetsManager.CreateTestProject(testProject, identifier: targetFramework); var publishCommand = new PublishCommand(testProjectInstance); publishCommand.Execute().Should().Pass(); @@ -92,14 +93,14 @@ public void It_creates_readytorun_images_for_all_assemblies_except_excluded_ones [InlineData("netcoreapp3.0")] public void It_creates_readytorun_symbols_when_switch_is_used(string targetFramework) { - TestProjectPublishing_Internal("CrossgenTest3", targetFramework, emitNativeSymbols: true); + TestProjectPublishing_Internal("CrossgenTest3", targetFramework, emitNativeSymbols: true, identifier: targetFramework); } [Theory] [InlineData("netcoreapp3.0")] public void It_supports_framework_dependent_publishing(string targetFramework) { - TestProjectPublishing_Internal("FrameworkDependent", targetFramework, isSelfContained: false, emitNativeSymbols:true); + TestProjectPublishing_Internal("FrameworkDependent", targetFramework, isSelfContained: false, emitNativeSymbols:true, identifier: targetFramework); } [Theory] @@ -146,7 +147,7 @@ public void It_does_not_support_cross_platform_readytorun_compilation(string tar testProject.AdditionalProperties["PublishReadyToRun"] = "True"; - var testProjectInstance = _testAssetsManager.CreateTestProject(testProject); + var testProjectInstance = _testAssetsManager.CreateTestProject(testProject, identifier: targetFramework); var publishCommand = new PublishCommand(testProjectInstance); @@ -182,14 +183,14 @@ public void It_warns_when_targetting_netcoreapp_2_x() [InlineData("netcoreapp3.0")] public void It_can_publish_readytorun_for_library_projects(string targetFramework) { - TestProjectPublishing_Internal("LibraryProject1", targetFramework, isSelfContained: false, makeExeProject: false); + TestProjectPublishing_Internal("LibraryProject1", targetFramework, isSelfContained: false, makeExeProject: false, identifier: targetFramework); } [Theory] [InlineData("netcoreapp3.0")] public void It_can_publish_readytorun_for_selfcontained_library_projects(string targetFramework) { - TestProjectPublishing_Internal("LibraryProject2", targetFramework, isSelfContained:true, makeExeProject: false); + TestProjectPublishing_Internal("LibraryProject2", targetFramework, isSelfContained:true, makeExeProject: false, identifier: targetFramework); } [RequiresMSBuildVersionTheory("16.8.0")] @@ -200,7 +201,7 @@ void It_can_publish_readytorun_using_crossgen2(string targetFramework) if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX) || RuntimeInformation.OSArchitecture != Architecture.X64) return; - TestProjectPublishing_Internal("Crossgen2TestApp", targetFramework, isSelfContained: true, emitNativeSymbols: true, useCrossgen2: true, composite: false); + TestProjectPublishing_Internal("Crossgen2TestApp", targetFramework, isSelfContained: true, emitNativeSymbols: true, useCrossgen2: true, composite: false, identifier: targetFramework); } [RequiresMSBuildVersionTheory("16.8.0")] @@ -211,7 +212,7 @@ void It_can_publish_readytorun_using_crossgen2_composite_mode(string targetFrame if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX) || RuntimeInformation.OSArchitecture != Architecture.X64) return; - TestProjectPublishing_Internal("Crossgen2TestApp", targetFramework, isSelfContained: true, emitNativeSymbols: false, useCrossgen2: true, composite: true); + TestProjectPublishing_Internal("Crossgen2TestApp", targetFramework, isSelfContained: true, emitNativeSymbols: false, useCrossgen2: true, composite: true, identifier: targetFramework); } [RequiresMSBuildVersionTheory("16.8.0")] @@ -233,7 +234,7 @@ public void It_only_supports_selfcontained_when_using_crossgen2(string targetFra testProject.AdditionalProperties["PublishReadyToRunUseCrossgen2"] = "True"; testProject.AdditionalProperties["SelfContained"] = "False"; - var testProjectInstance = _testAssetsManager.CreateTestProject(testProject); + var testProjectInstance = _testAssetsManager.CreateTestProject(testProject, targetFramework); var publishCommand = new PublishCommand(testProjectInstance); publishCommand.Execute() @@ -242,7 +243,15 @@ public void It_only_supports_selfcontained_when_using_crossgen2(string targetFra .And.HaveStdOutContainingIgnoreCase("NETSDK1126"); } - private void TestProjectPublishing_Internal(string projectName, string targetFramework, bool makeExeProject = true, bool isSelfContained = true, bool emitNativeSymbols = false, bool useCrossgen2 = false, bool composite = true) + private void TestProjectPublishing_Internal(string projectName, + string targetFramework, + bool makeExeProject = true, + bool isSelfContained = true, + bool emitNativeSymbols = false, + bool useCrossgen2 = false, + bool composite = true, + [CallerMemberName] string callingMethod = "", + string identifier = null) { var testProject = CreateTestProjectForR2RTesting( targetFramework, @@ -256,7 +265,7 @@ private void TestProjectPublishing_Internal(string projectName, string targetFra testProject.AdditionalProperties["PublishReadyToRunComposite"] = composite ? "True" : "False"; testProject.AdditionalProperties["SelfContained"] = isSelfContained ? "True" : "False"; - var testProjectInstance = _testAssetsManager.CreateTestProject(testProject); + var testProjectInstance = _testAssetsManager.CreateTestProject(testProject, callingMethod, identifier); var publishCommand = new PublishCommand(testProjectInstance); publishCommand.Execute().Should().Pass(); diff --git a/src/Tests/Microsoft.NET.Publish.Tests/GivenThatWeWantToPublishToClickOnce.cs b/src/Tests/Microsoft.NET.Publish.Tests/GivenThatWeWantToPublishToClickOnce.cs index 56c5036dcad1..2e74c1351970 100644 --- a/src/Tests/Microsoft.NET.Publish.Tests/GivenThatWeWantToPublishToClickOnce.cs +++ b/src/Tests/Microsoft.NET.Publish.Tests/GivenThatWeWantToPublishToClickOnce.cs @@ -38,7 +38,7 @@ public void It_publishes_with_a_publish_profile(bool? publishSingleFile) }; testProject.PackageReferences.Add(new TestPackageReference("NewtonSoft.Json", "9.0.1")); - var testProjectInstance = _testAssetsManager.CreateTestProject(testProject); + var testProjectInstance = _testAssetsManager.CreateTestProject(testProject, identifier: publishSingleFile.ToString()); var projectDirectory = Path.Combine(testProjectInstance.Path, testProject.Name); var publishProfilesDirectory = Path.Combine(projectDirectory, "Properties", "PublishProfiles"); diff --git a/src/Tests/Microsoft.NET.Publish.Tests/GivenThatWeWantToPublishWithGeneratePackageOnBuildAndPackAsTool.cs b/src/Tests/Microsoft.NET.Publish.Tests/GivenThatWeWantToPublishWithGeneratePackageOnBuildAndPackAsTool.cs index 43605ad43c3a..d305c1452745 100644 --- a/src/Tests/Microsoft.NET.Publish.Tests/GivenThatWeWantToPublishWithGeneratePackageOnBuildAndPackAsTool.cs +++ b/src/Tests/Microsoft.NET.Publish.Tests/GivenThatWeWantToPublishWithGeneratePackageOnBuildAndPackAsTool.cs @@ -56,7 +56,7 @@ public void It_publishes_successfully(bool generatePackageOnBuild, bool packAsTo [InlineData(false, true)] [InlineData(true, false)] [InlineData(true, true)] - public void It_builds_successfully(bool generatePackageOnBuild, bool packAsTool) + public void It_builds_with_GeneratePackageOnBuild_successfully(bool generatePackageOnBuild, bool packAsTool) { TestAsset testAsset = _testAssetsManager .CopyTestAsset("HelloWorld", identifier: generatePackageOnBuild.ToString() + packAsTool.ToString()) diff --git a/src/Tests/Microsoft.NET.Publish.Tests/GivenThatWeWantToRunILLink.cs b/src/Tests/Microsoft.NET.Publish.Tests/GivenThatWeWantToRunILLink.cs index aef2d6199ce3..1685c3627959 100644 --- a/src/Tests/Microsoft.NET.Publish.Tests/GivenThatWeWantToRunILLink.cs +++ b/src/Tests/Microsoft.NET.Publish.Tests/GivenThatWeWantToRunILLink.cs @@ -111,7 +111,7 @@ public void ILLink_links_simple_app_without_analysis_warnings_and_it_runs(string var rid = EnvironmentInfo.GetCompatibleRid(targetFramework); var testProject = CreateTestProjectForILLinkTesting(targetFramework, projectName); - var testAsset = _testAssetsManager.CreateTestProject(testProject); + var testAsset = _testAssetsManager.CreateTestProject(testProject, identifier: targetFramework + trimMode); var publishCommand = new PublishCommand(testAsset); publishCommand.Execute($"/p:RuntimeIdentifier={rid}", "/p:SelfContained=true", "/p:PublishTrimmed=true", $"/p:TrimMode={trimMode}") @@ -160,8 +160,8 @@ public void PrepareForILLink_can_set_TrimMode(string targetFramework) var referenceProjectName = "ClassLibForILLink"; var rid = EnvironmentInfo.GetCompatibleRid(targetFramework); - var testProject = CreateTestProjectForILLinkTesting(targetFramework, projectName, referenceProjectName); - var testAsset = _testAssetsManager.CreateTestProject(testProject) + var testProject = CreateTestProjectForILLinkTesting(targetFramework, projectName, referenceProjectName, referenceProjectIdentifier: targetFramework); + var testAsset = _testAssetsManager.CreateTestProject(testProject, identifier: targetFramework) .WithProjectChanges(project => SetTrimMode(project, referenceProjectName, "link")); var publishCommand = new PublishCommand(testAsset); @@ -185,8 +185,8 @@ public void ILLink_respects_global_TrimMode(string targetFramework) var referenceProjectName = "ClassLibForILLink"; var rid = EnvironmentInfo.GetCompatibleRid(targetFramework); - var testProject = CreateTestProjectForILLinkTesting(targetFramework, projectName, referenceProjectName); - var testAsset = _testAssetsManager.CreateTestProject(testProject) + var testProject = CreateTestProjectForILLinkTesting(targetFramework, projectName, referenceProjectName, referenceProjectIdentifier: targetFramework); + var testAsset = _testAssetsManager.CreateTestProject(testProject, identifier: targetFramework) .WithProjectChanges(project => SetGlobalTrimMode(project, "link")) .WithProjectChanges(project => SetIsTrimmable(project, referenceProjectName)) .WithProjectChanges(project => AddRootDescriptor(project, $"{referenceProjectName}.xml")); @@ -893,7 +893,7 @@ public void It_warns_when_targetting_netcoreapp_2_x() IsExe = true, }; - var testAsset = _testAssetsManager.CreateTestProject(testProject); + var testAsset = _testAssetsManager.CreateTestProject(testProject, identifier: "GivenThatWeWantToRunILLink"); var publishCommand = new PublishCommand(testAsset); diff --git a/src/Tests/Microsoft.NET.Publish.Tests/PublishItemsOutputGroupOutputsTests.cs b/src/Tests/Microsoft.NET.Publish.Tests/PublishItemsOutputGroupOutputsTests.cs index fa95f5e90e35..5226af5c1c5e 100644 --- a/src/Tests/Microsoft.NET.Publish.Tests/PublishItemsOutputGroupOutputsTests.cs +++ b/src/Tests/Microsoft.NET.Publish.Tests/PublishItemsOutputGroupOutputsTests.cs @@ -55,7 +55,7 @@ public void RunPublishItemsOutputGroupOutputsTest(bool specifyRid, bool singleFi testProject.AdditionalProperties["PublishSingleFile"] = "true"; } - var testAsset = _testAssetsManager.CreateTestProject(testProject); + var testAsset = _testAssetsManager.CreateTestProject(testProject, identifier: specifyRid.ToString() + singleFile.ToString()); var restoreCommand = new RestoreCommand(testAsset); restoreCommand diff --git a/src/Tests/Microsoft.NET.Publish.Tests/PublishItemsOutputGroupTests.cs b/src/Tests/Microsoft.NET.Publish.Tests/PublishItemsOutputGroupTests.cs index 7334431c2960..acc8bdc15e1d 100644 --- a/src/Tests/Microsoft.NET.Publish.Tests/PublishItemsOutputGroupTests.cs +++ b/src/Tests/Microsoft.NET.Publish.Tests/PublishItemsOutputGroupTests.cs @@ -37,7 +37,7 @@ public PublishItemsOutputGroupTests(ITestOutputHelper log) : base(log) public void RunPublishItemsOutputGroupTest(bool specifyRid, bool singleFile) { var testProject = this.SetupProject(specifyRid, singleFile); - var testAsset = _testAssetsManager.CreateTestProject(testProject); + var testAsset = _testAssetsManager.CreateTestProject(testProject, identifier: specifyRid.ToString() + singleFile.ToString()); var restoreCommand = new RestoreCommand(testAsset); restoreCommand diff --git a/src/Tests/Microsoft.NET.Restore.Tests/GivenThatWeWantAutomaticTargetingPackReferences.cs b/src/Tests/Microsoft.NET.Restore.Tests/GivenThatWeWantAutomaticTargetingPackReferences.cs index 8f737790692f..2ce9dc3b99b3 100644 --- a/src/Tests/Microsoft.NET.Restore.Tests/GivenThatWeWantAutomaticTargetingPackReferences.cs +++ b/src/Tests/Microsoft.NET.Restore.Tests/GivenThatWeWantAutomaticTargetingPackReferences.cs @@ -36,7 +36,7 @@ public void It_restores_net_framework_project_successfully(string version) TargetFrameworks = targetFramework, }; - var testAsset = _testAssetsManager.CreateTestProject(testProject); + var testAsset = _testAssetsManager.CreateTestProject(testProject, identifier: version); string projectAssetsJsonPath = Path.Combine( testAsset.Path, @@ -77,7 +77,7 @@ public void It_restores_multitargeted_net_framework_project_successfully(bool in if (includeExplicitReference) { // Add explicit reference to assembly packs - testAsset = _testAssetsManager.CreateTestProject(testProject).WithProjectChanges(project => + testAsset = _testAssetsManager.CreateTestProject(testProject, identifier: includeExplicitReference.ToString()).WithProjectChanges(project => { var ns = project.Root.Name.Namespace; var itemGroup = project.Root.Elements(ns + "ItemGroup").FirstOrDefault(); diff --git a/src/Tests/Microsoft.NET.TestFramework/TestAssetsManager.cs b/src/Tests/Microsoft.NET.TestFramework/TestAssetsManager.cs index 817f1925b14c..bb76b88db635 100644 --- a/src/Tests/Microsoft.NET.TestFramework/TestAssetsManager.cs +++ b/src/Tests/Microsoft.NET.TestFramework/TestAssetsManager.cs @@ -137,7 +137,15 @@ public static string GetTestDestinationDirectoryPath( } } - return Path.Combine(baseDirectory, directoryName.ToString()); + var directoryPath = Path.Combine(baseDirectory, directoryName.ToString()); +#if CI_BUILD + if (Directory.Exists(directoryPath)) + { + throw new Exception($"Test dir {directoryPath} already exists"); + } +#endif + + return directoryPath; } } } diff --git a/src/Tests/Microsoft.NET.ToolPack.Tests/GivenThatWeWantToPackAToolProjectWithComplexNugetDependency.cs b/src/Tests/Microsoft.NET.ToolPack.Tests/GivenThatWeWantToPackAToolProjectWithComplexNugetDependency.cs index 381fa9705886..ae43fb67b79e 100644 --- a/src/Tests/Microsoft.NET.ToolPack.Tests/GivenThatWeWantToPackAToolProjectWithComplexNugetDependency.cs +++ b/src/Tests/Microsoft.NET.ToolPack.Tests/GivenThatWeWantToPackAToolProjectWithComplexNugetDependency.cs @@ -30,7 +30,7 @@ public GivenThatWeWantToPackAToolProjectWithComplexNugetDependency(ITestOutputHe public void It_has_native_and_transitive_dependencies_dll(bool multiTarget) { TestAsset helloWorldAsset = _testAssetsManager - .CopyTestAsset("PortableTool") + .CopyTestAsset("PortableTool", identifier: multiTarget.ToString()) .WithSource() .WithProjectChanges(project => { diff --git a/src/Tests/Microsoft.NET.ToolPack.Tests/GivenThatWeWantToPackAToolProjectWithPackagedShim.cs b/src/Tests/Microsoft.NET.ToolPack.Tests/GivenThatWeWantToPackAToolProjectWithPackagedShim.cs index f29a2f08c478..2f257139d26e 100644 --- a/src/Tests/Microsoft.NET.ToolPack.Tests/GivenThatWeWantToPackAToolProjectWithPackagedShim.cs +++ b/src/Tests/Microsoft.NET.ToolPack.Tests/GivenThatWeWantToPackAToolProjectWithPackagedShim.cs @@ -151,7 +151,7 @@ public void It_uses_customized_PackagedShimOutputRootDirectory(bool multiTarget, { string shimoutputPath = Path.Combine(TestContext.Current.TestExecutionDirectory, "shimoutput"); TestAsset helloWorldAsset = _testAssetsManager - .CopyTestAsset("PortableTool", "PackagedShimOutputRootDirectory" + multiTarget.ToString()) + .CopyTestAsset("PortableTool", "PackagedShimOutputRootDirectory" + multiTarget.ToString(), identifier: multiTarget.ToString() + targetFramework) .WithSource() .WithProjectChanges(project => { diff --git a/src/Tests/Microsoft.NET.ToolPack.Tests/GivenThatWeWantToPackAToolSelfContainedProject.cs b/src/Tests/Microsoft.NET.ToolPack.Tests/GivenThatWeWantToPackAToolSelfContainedProject.cs index e69737c16891..0a2dd5ebcc7d 100644 --- a/src/Tests/Microsoft.NET.ToolPack.Tests/GivenThatWeWantToPackAToolSelfContainedProject.cs +++ b/src/Tests/Microsoft.NET.ToolPack.Tests/GivenThatWeWantToPackAToolSelfContainedProject.cs @@ -12,6 +12,7 @@ using Microsoft.DotNet.Cli.Utils; using Microsoft.NET.Build.Tasks; using System.Collections.Generic; +using System.Runtime.CompilerServices; namespace Microsoft.NET.ToolPack.Tests { @@ -47,10 +48,10 @@ public void It_should_not_fail_on_build() result.ExitCode.Should().Be(0); } - private TestAsset CreateAsset() + private TestAsset CreateAsset([CallerMemberName] string callingMethod = "") { TestAsset helloWorldAsset = _testAssetsManager - .CopyTestAsset("PortableTool", "PackSelfContainedTool") + .CopyTestAsset("PortableTool", callingMethod) .WithSource() .WithProjectChanges(project => { diff --git a/src/Tests/Microsoft.NET.ToolPack.Tests/GivenThatWeWantToPackAToolTargetingNonSupportedTFM.cs b/src/Tests/Microsoft.NET.ToolPack.Tests/GivenThatWeWantToPackAToolTargetingNonSupportedTFM.cs index c1bed95fda64..9de4a6293f97 100644 --- a/src/Tests/Microsoft.NET.ToolPack.Tests/GivenThatWeWantToPackAToolTargetingNonSupportedTFM.cs +++ b/src/Tests/Microsoft.NET.ToolPack.Tests/GivenThatWeWantToPackAToolTargetingNonSupportedTFM.cs @@ -36,7 +36,7 @@ public void It_should_fail_with_error_message(string targetFrameworkProperty, string expectedErrorResourceName) { TestAsset helloWorldAsset = _testAssetsManager - .CopyTestAsset("PortableTool", "PackNonSupportedTFM") + .CopyTestAsset("PortableTool", "PackNonSupportedTFM", identifier: targetFrameworkProperty + targetFramework) .WithSource() .WithProjectChanges(project => { diff --git a/src/Tests/dotnet-add-package.Tests/GivenDotnetPackageAdd.cs b/src/Tests/dotnet-add-package.Tests/GivenDotnetPackageAdd.cs index ce2670e29aed..1d4e83763537 100644 --- a/src/Tests/dotnet-add-package.Tests/GivenDotnetPackageAdd.cs +++ b/src/Tests/dotnet-add-package.Tests/GivenDotnetPackageAdd.cs @@ -12,6 +12,7 @@ using Microsoft.NET.TestFramework.ProjectConstruction; using System.Collections.Generic; using System.Linq; +using System.Runtime.CompilerServices; namespace Microsoft.DotNet.Cli.Package.Add.Tests { @@ -63,12 +64,12 @@ public void WhenPrereleaseOptionIsPassed(string[] inputVersions, string expected TargetFrameworks = targetFramework, }; - var packages = inputVersions.Select(e => GetPackagePath(targetFramework, "A", e)).ToArray(); + var packages = inputVersions.Select(e => GetPackagePath(targetFramework, "A", e, identifier: expectedVersion + e + inputVersions.GetHashCode().ToString())).ToArray(); testProject.AdditionalProperties.Add("RestoreSources", - "$(RestoreSources);" + Path.GetDirectoryName(packages[0])); + "$(RestoreSources);" + string.Join(";", packages.Select(package => Path.GetDirectoryName(package)))); - var testAsset = _testAssetsManager.CreateTestProject(testProject); + var testAsset = _testAssetsManager.CreateTestProject(testProject, identifier: inputVersions.GetHashCode().ToString()); var cmd = new DotnetCommand(Log) .WithWorkingDirectory(Path.Combine(testAsset.TestRoot, testProject.Name)) @@ -251,10 +252,10 @@ private static TestProject GetProject(string targetFramework, string referencePr return project; } - private string GetPackagePath(string targetFramework, string packageName, string version) + private string GetPackagePath(string targetFramework, string packageName, string version, [CallerMemberName] string callingMethod = "", string identifier = null) { var project = GetProject(targetFramework, packageName, version); - var packCommand = new PackCommand(Log, _testAssetsManager.CreateTestProject(project).TestRoot, packageName); + var packCommand = new PackCommand(Log, _testAssetsManager.CreateTestProject(project, callingMethod: callingMethod, identifier: identifier).TestRoot, packageName); packCommand .Execute() diff --git a/src/Tests/dotnet-add-reference.Tests/GivenDotnetAddReference.cs b/src/Tests/dotnet-add-reference.Tests/GivenDotnetAddReference.cs index df915c4d177f..d93ea9dd1c44 100644 --- a/src/Tests/dotnet-add-reference.Tests/GivenDotnetAddReference.cs +++ b/src/Tests/dotnet-add-reference.Tests/GivenDotnetAddReference.cs @@ -58,7 +58,7 @@ public GivenDotnetAddReference(ITestOutputHelper log) : base(log) private TestSetup Setup([System.Runtime.CompilerServices.CallerMemberName] string callingMethod = nameof(Setup), string identifier = "") { return new TestSetup( - _testAssetsManager.CopyTestAsset(TestSetup.ProjectName, callingMethod + nameof(GivenDotnetAddReference), identifier, testAssetSubdirectory: TestSetup.TestGroup) + _testAssetsManager.CopyTestAsset(TestSetup.ProjectName, callingMethod + nameof(GivenDotnetAddReference), identifier: identifier + callingMethod, testAssetSubdirectory: TestSetup.TestGroup) .WithSource() .Path); } @@ -138,7 +138,7 @@ public void WhenTooManyArgumentsArePassedItPrintsError() [InlineData("ihave?inv@lid/char\\acters")] public void WhenNonExistingProjectIsPassedItPrintsErrorAndUsage(string projName) { - var setup = Setup(); + var setup = Setup(identifier: projName); var cmd = new DotnetCommand(Log, "add", projName, "reference") .WithWorkingDirectory(setup.TestRoot) @@ -652,7 +652,7 @@ public void WhenFrameworkSwitchIsNotMatchingAnyOfTargetedFrameworksItPrintsError [InlineData(true)] public void WhenIncompatibleFrameworkDetectedItPrintsError(bool useFrameworkArg) { - var setup = Setup(); + var setup = Setup(useFrameworkArg.ToString()); var lib = new ProjDir(setup.LibDir); var net45lib = new ProjDir(Path.Combine(setup.TestRoot, "Net45Lib")); diff --git a/src/Tests/dotnet-list-package.Tests/GivenDotnetListPackage.cs b/src/Tests/dotnet-list-package.Tests/GivenDotnetListPackage.cs index 6067bba806b8..4855f43556fc 100644 --- a/src/Tests/dotnet-list-package.Tests/GivenDotnetListPackage.cs +++ b/src/Tests/dotnet-list-package.Tests/GivenDotnetListPackage.cs @@ -195,7 +195,7 @@ public void ItListsValidFrameworks(string args, string shouldInclude, string sho { var testAssetName = "MSBuildAppWithMultipleFrameworks"; var testAsset = _testAssetsManager - .CopyTestAsset(testAssetName) + .CopyTestAsset(testAssetName, identifier: args.GetHashCode().ToString() + shouldInclude) .WithSource(); var projectDirectory = testAsset.Path; diff --git a/src/Tests/dotnet-list-reference.Tests/GivenDotnetListReference.cs b/src/Tests/dotnet-list-reference.Tests/GivenDotnetListReference.cs index c09787f98245..1856a8c0b0e0 100644 --- a/src/Tests/dotnet-list-reference.Tests/GivenDotnetListReference.cs +++ b/src/Tests/dotnet-list-reference.Tests/GivenDotnetListReference.cs @@ -92,7 +92,7 @@ public void WhenTooManyArgumentsArePassedItPrintsError() [InlineData("ihave?inv@lid/char\\acters")] public void WhenNonExistingProjectIsPassedItPrintsErrorAndUsage(string projName) { - var setup = Setup(); + var setup = Setup(identifier: projName); var cmd = new ListReferenceCommand(Log) .WithProject(projName) diff --git a/src/Tests/dotnet-msbuild.Tests/GivenDotnetMSBuildBuildsProjects.cs b/src/Tests/dotnet-msbuild.Tests/GivenDotnetMSBuildBuildsProjects.cs index db6b080c776e..0fee23bb6e46 100644 --- a/src/Tests/dotnet-msbuild.Tests/GivenDotnetMSBuildBuildsProjects.cs +++ b/src/Tests/dotnet-msbuild.Tests/GivenDotnetMSBuildBuildsProjects.cs @@ -94,7 +94,7 @@ public void WhenRestoreSourcesStartsWithUnixPathThenHttpsSourceIsParsedCorrectly } // this is a workaround for https://github.com/Microsoft/msbuild/issues/1622 - var testInstance = _testAssetsManager.CopyTestAsset("LibraryWithUnresolvablePackageReference") + var testInstance = _testAssetsManager.CopyTestAsset("LibraryWithUnresolvablePackageReference", identifier: propertyFormat.GetHashCode().ToString()) .WithSource(); var root = testInstance.Path; diff --git a/src/Tests/dotnet-remove-reference.Tests/GivenDotnetRemoveP2P.cs b/src/Tests/dotnet-remove-reference.Tests/GivenDotnetRemoveP2P.cs index cc6981e1374d..3c9f6a82fa2e 100644 --- a/src/Tests/dotnet-remove-reference.Tests/GivenDotnetRemoveP2P.cs +++ b/src/Tests/dotnet-remove-reference.Tests/GivenDotnetRemoveP2P.cs @@ -56,7 +56,7 @@ public GivenDotnetRemoveReference(ITestOutputHelper log) : base(log) private TestSetup Setup([System.Runtime.CompilerServices.CallerMemberName] string callingMethod = nameof(Setup), string identifier = "") { return new TestSetup( - _testAssetsManager.CopyTestAsset(TestSetup.ProjectName, callingMethod: callingMethod + nameof(GivenDotnetRemoveReference), identifier: identifier, testAssetSubdirectory: TestAssetSubdirectories.NonRestoredTestProjects) + _testAssetsManager.CopyTestAsset(TestSetup.ProjectName, callingMethod: callingMethod + nameof(GivenDotnetRemoveReference), identifier: identifier + callingMethod, testAssetSubdirectory: TestAssetSubdirectories.NonRestoredTestProjects) .WithSource() .Path); } @@ -173,7 +173,7 @@ public void WhenTooManyArgumentsArePassedItPrintsError() [InlineData("ihave?inv@lid/char\\acters")] public void WhenNonExistingProjectIsPassedItPrintsErrorAndUsage(string projName) { - var setup = Setup(); + var setup = Setup(identifier: projName.GetHashCode().ToString()); var cmd = new RemoveReferenceCommand(Log) .WithProject(projName) diff --git a/src/Tests/dotnet-restore.Tests/GivenThatIWantToRestoreApp.cs b/src/Tests/dotnet-restore.Tests/GivenThatIWantToRestoreApp.cs index 75eee3307277..a8430455bf99 100644 --- a/src/Tests/dotnet-restore.Tests/GivenThatIWantToRestoreApp.cs +++ b/src/Tests/dotnet-restore.Tests/GivenThatIWantToRestoreApp.cs @@ -28,14 +28,14 @@ public GivenThatIWantToRestoreApp(ITestOutputHelper log) : base(log) [InlineData(false)] public void ItRestoresAppToSpecificDirectory(bool useStaticGraphEvaluation) { - var rootPath = _testAssetsManager.CreateTestDirectory().Path; + var rootPath = _testAssetsManager.CreateTestDirectory(identifier: useStaticGraphEvaluation.ToString()).Path; string dir = "pkgs"; string fullPath = Path.GetFullPath(Path.Combine(rootPath, dir)); var sln = "TestAppWithSlnAndSolutionFolders"; var projectDirectory = _testAssetsManager - .CopyTestAsset(sln) + .CopyTestAsset(sln, identifier: useStaticGraphEvaluation.ToString()) .WithSource() .Path; @@ -67,7 +67,7 @@ public void ItRestoresLibToSpecificDirectory(bool useStaticGraphEvaluation, stri testProject.PackageReferences.Add(new TestPackageReference("Newtonsoft.Json", "12.0.3")); - var testAsset = _testAssetsManager.CreateTestProject(testProject, identifier: useStaticGraphEvaluation.ToString(), targetExtension: extension); + var testAsset = _testAssetsManager.CreateTestProject(testProject, identifier: useStaticGraphEvaluation.ToString() + extension, targetExtension: extension); var rootPath = Path.Combine(testAsset.TestRoot, testProject.Name); @@ -105,7 +105,7 @@ public void ItRestoresLibToSpecificDirectory(bool useStaticGraphEvaluation, stri [InlineData(false)] public void ItRestoresTestAppToSpecificDirectory(bool useStaticGraphEvaluation) { - var rootPath = _testAssetsManager.CopyTestAsset("VSTestCore") + var rootPath = _testAssetsManager.CopyTestAsset("VSTestCore", identifier: useStaticGraphEvaluation.ToString()) .WithSource() .WithVersionVariables() .Path; @@ -131,7 +131,7 @@ public void ItRestoresTestAppToSpecificDirectory(bool useStaticGraphEvaluation) [InlineData(false)] public void ItRestoresWithTheSpecifiedVerbosity(bool useStaticGraphEvaluation) { - var rootPath = _testAssetsManager.CreateTestDirectory().Path; + var rootPath = _testAssetsManager.CreateTestDirectory(identifier: useStaticGraphEvaluation.ToString()).Path; string dir = "pkgs"; string fullPath = Path.GetFullPath(Path.Combine(rootPath, dir)); diff --git a/src/Tests/dotnet-sln.Tests/GivenDotnetSlnAdd.cs b/src/Tests/dotnet-sln.Tests/GivenDotnetSlnAdd.cs index 6543d2b70860..5367c121c36b 100644 --- a/src/Tests/dotnet-sln.Tests/GivenDotnetSlnAdd.cs +++ b/src/Tests/dotnet-sln.Tests/GivenDotnetSlnAdd.cs @@ -481,7 +481,7 @@ public void WhenNonExistingSolutionIsPassedItPrintsErrorAndUsage(string solution public void WhenInvalidSolutionIsPassedItPrintsErrorAndUsage() { var projectDirectory = _testAssetsManager - .CopyTestAsset("InvalidSolution") + .CopyTestAsset("InvalidSolution", identifier: "GivenDotnetSlnAdd") .WithSource() .Path; @@ -516,7 +516,7 @@ public void WhenInvalidSolutionIsFoundAddPrintsErrorAndUsage() public void WhenNoProjectIsPassedItPrintsErrorAndUsage() { var projectDirectory = _testAssetsManager - .CopyTestAsset("TestAppWithSlnAndCsprojFiles") + .CopyTestAsset("TestAppWithSlnAndCsprojFiles", identifier: "GivenDotnetSlnAdd") .WithSource() .Path; @@ -550,7 +550,7 @@ public void WhenNoSolutionExistsInTheDirectoryAddPrintsErrorAndUsage() public void WhenMoreThanOneSolutionExistsInTheDirectoryItPrintsErrorAndUsage() { var projectDirectory = _testAssetsManager - .CopyTestAsset("TestAppWithMultipleSlnFiles") + .CopyTestAsset("TestAppWithMultipleSlnFiles", identifier: "GivenDotnetSlnAdd") .WithSource() .Path; @@ -679,7 +679,7 @@ public void WhenProjectDirectoryIsAddedSolutionFoldersAreNotCreated() public void WhenSolutionFolderExistsItDoesNotGetAdded(string firstComponent) { var projectDirectory = _testAssetsManager - .CopyTestAsset("TestAppWithSlnAndSolutionFolders") + .CopyTestAsset("TestAppWithSlnAndSolutionFolders", identifier: firstComponent) .WithSource() .Path; diff --git a/src/Tests/dotnet-sln.Tests/GivenDotnetSlnList.cs b/src/Tests/dotnet-sln.Tests/GivenDotnetSlnList.cs index 8cdcf1cb8ec3..a0c915d360f3 100644 --- a/src/Tests/dotnet-sln.Tests/GivenDotnetSlnList.cs +++ b/src/Tests/dotnet-sln.Tests/GivenDotnetSlnList.cs @@ -96,7 +96,7 @@ public void WhenNonExistingSolutionIsPassedItPrintsErrorAndUsage(string solution public void WhenInvalidSolutionIsPassedItPrintsErrorAndUsage() { var projectDirectory = _testAssetsManager - .CopyTestAsset("InvalidSolution") + .CopyTestAsset("InvalidSolution", identifier: "GivenDotnetSlnList") .WithSource() .Path; @@ -146,7 +146,7 @@ public void WhenNoSolutionExistsInTheDirectoryListPrintsErrorAndUsage() public void WhenMoreThanOneSolutionExistsInTheDirectoryItPrintsErrorAndUsage() { var projectDirectory = _testAssetsManager - .CopyTestAsset("TestAppWithMultipleSlnFiles") + .CopyTestAsset("TestAppWithMultipleSlnFiles", identifier: "GivenDotnetSlnList") .WithSource() .Path; diff --git a/src/Tests/dotnet-sln.Tests/GivenDotnetSlnRemove.cs b/src/Tests/dotnet-sln.Tests/GivenDotnetSlnRemove.cs index a3b869399d38..b4b29cb547b2 100644 --- a/src/Tests/dotnet-sln.Tests/GivenDotnetSlnRemove.cs +++ b/src/Tests/dotnet-sln.Tests/GivenDotnetSlnRemove.cs @@ -313,7 +313,7 @@ public void WhenNonExistingSolutionIsPassedItPrintsErrorAndUsage(string solution public void WhenInvalidSolutionIsPassedItPrintsErrorAndUsage() { var projectDirectory = _testAssetsManager - .CopyTestAsset("InvalidSolution") + .CopyTestAsset("InvalidSolution", identifier: "GivenDotnetSlnRemove") .WithSource() .Path; @@ -348,7 +348,7 @@ public void WhenInvalidSolutionIsFoundRemovePrintsErrorAndUsage() public void WhenNoProjectIsPassedItPrintsErrorAndUsage() { var projectDirectory = _testAssetsManager - .CopyTestAsset("TestAppWithSlnAndCsprojFiles") + .CopyTestAsset("TestAppWithSlnAndCsprojFiles", identifier: "GivenDotnetSlnRemove") .WithSource() .Path; @@ -381,7 +381,7 @@ public void WhenNoSolutionExistsInTheDirectoryRemovePrintsErrorAndUsage() public void WhenMoreThanOneSolutionExistsInTheDirectoryItPrintsErrorAndUsage() { var projectDirectory = _testAssetsManager - .CopyTestAsset("TestAppWithMultipleSlnFiles") + .CopyTestAsset("TestAppWithMultipleSlnFiles", identifier: "GivenDotnetSlnRemove") .WithSource() .Path; diff --git a/src/Tests/dotnet-vstest.Tests/VSTestTests.cs b/src/Tests/dotnet-vstest.Tests/VSTestTests.cs index 10bc2082b17c..0c41cb90ee56 100644 --- a/src/Tests/dotnet-vstest.Tests/VSTestTests.cs +++ b/src/Tests/dotnet-vstest.Tests/VSTestTests.cs @@ -25,7 +25,7 @@ public VSTestTests(ITestOutputHelper log) : base(log) public void TestsFromAGivenContainerShouldRunWithExpectedOutput() { var testAppName = "VSTestCore"; - var testAsset = _testAssetsManager.CopyTestAsset(testAppName) + var testAsset = _testAssetsManager.CopyTestAsset(testAppName, identifier: "VSTestTests") .WithSource() .WithVersionVariables(); diff --git a/src/Tests/dotnet-watch.Tests/FileWatcherTests.cs b/src/Tests/dotnet-watch.Tests/FileWatcherTests.cs index bfa47dd46c2a..673907ef2d5e 100644 --- a/src/Tests/dotnet-watch.Tests/FileWatcherTests.cs +++ b/src/Tests/dotnet-watch.Tests/FileWatcherTests.cs @@ -38,7 +38,7 @@ public async Task NewFile(bool usePolling) return; } - var dir = _testAssetManager.CreateTestDirectory().Path; + var dir = _testAssetManager.CreateTestDirectory(identifier: usePolling.ToString()).Path; using var watcher = FileWatcherFactory.CreateWatcher(dir, usePolling); @@ -70,7 +70,7 @@ public async Task ChangeFile(bool usePolling) return; } - var dir = _testAssetManager.CreateTestDirectory().Path; + var dir = _testAssetManager.CreateTestDirectory(identifier: usePolling.ToString()).Path; var testFileFullPath = Path.Combine(dir, "foo"); File.WriteAllText(testFileFullPath, string.Empty); @@ -117,7 +117,7 @@ public async Task MoveFile(bool usePolling) return; } - var dir = _testAssetManager.CreateTestDirectory().Path; + var dir = _testAssetManager.CreateTestDirectory(identifier: usePolling.ToString()).Path; var srcFile = Path.Combine(dir, "foo"); var dstFile = Path.Combine(dir, "foo2"); @@ -207,7 +207,7 @@ public async Task NoNotificationIfDisabled(bool usePolling) return; } - var dir = _testAssetManager.CreateTestDirectory().Path; + var dir = _testAssetManager.CreateTestDirectory(identifier: usePolling.ToString()).Path; using var watcher = FileWatcherFactory.CreateWatcher(dir, usePolling); @@ -242,7 +242,7 @@ public async Task DisposedNoEvents(bool usePolling) return; } - var dir = _testAssetManager.CreateTestDirectory().Path; + var dir = _testAssetManager.CreateTestDirectory(identifier: usePolling.ToString()).Path; var changedEv = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); using (var watcher = FileWatcherFactory.CreateWatcher(dir, usePolling)) { @@ -275,7 +275,7 @@ public async Task MultipleFiles(bool usePolling) return; } - var dir = _testAssetManager.CreateTestDirectory().Path; + var dir = _testAssetManager.CreateTestDirectory(identifier: usePolling.ToString()).Path; File.WriteAllText(Path.Combine(dir, "foo1"), string.Empty); File.WriteAllText(Path.Combine(dir, "foo2"), string.Empty); @@ -325,7 +325,7 @@ public async Task MultipleTriggers(bool usePolling) return; } - var dir = _testAssetManager.CreateTestDirectory().Path; + var dir = _testAssetManager.CreateTestDirectory(identifier: usePolling.ToString()).Path; using var watcher = FileWatcherFactory.CreateWatcher(dir, usePolling); @@ -391,7 +391,7 @@ public async Task DeleteSubfolder(bool usePolling) return; } - var dir = _testAssetManager.CreateTestDirectory().Path; + var dir = _testAssetManager.CreateTestDirectory(usePolling.ToString()).Path; var subdir = Path.Combine(dir, "subdir"); Directory.CreateDirectory(subdir); diff --git a/src/Tests/dotnet-watch.Tests/GlobbingAppTests.cs b/src/Tests/dotnet-watch.Tests/GlobbingAppTests.cs index ba22d328a7a6..b6e42ab0c043 100644 --- a/src/Tests/dotnet-watch.Tests/GlobbingAppTests.cs +++ b/src/Tests/dotnet-watch.Tests/GlobbingAppTests.cs @@ -31,7 +31,7 @@ public GlobbingAppTests(ITestOutputHelper logger) [InlineData(false)] public async Task ChangeCompiledFile(bool usePollingWatcher) { - var testAsset = _testAssetsManager.CopyTestAsset(AppName) + var testAsset = _testAssetsManager.CopyTestAsset(AppName, identifier: usePollingWatcher.ToString()) .WithSource() .Path;