Stop modifying current working directory from test.
This commit fixes the ToolPackageInstaller tests so that they no longer modify the current working directory. The directory being set is now being properly passed in as an argument to override the default of the current working directory. Additionally, this commit also changes the package root to a temp location rather than based off of the current working directory.
This commit is contained in:
parent
e2d9c2f892
commit
52478e8947
4 changed files with 12 additions and 11 deletions
|
@ -15,6 +15,7 @@ namespace Microsoft.DotNet.ToolPackage
|
|||
VersionRange versionRange = null,
|
||||
string targetFramework = null,
|
||||
FilePath? nugetConfig = null,
|
||||
DirectoryPath? rootConfigDirectory = null,
|
||||
string source = null,
|
||||
string verbosity = null);
|
||||
}
|
||||
|
|
|
@ -35,6 +35,7 @@ namespace Microsoft.DotNet.ToolPackage
|
|||
VersionRange versionRange = null,
|
||||
string targetFramework = null,
|
||||
FilePath? nugetConfig = null,
|
||||
DirectoryPath? rootConfigDirectory = null,
|
||||
string source = null,
|
||||
string verbosity = null)
|
||||
{
|
||||
|
@ -53,7 +54,8 @@ namespace Microsoft.DotNet.ToolPackage
|
|||
packageId: packageId,
|
||||
versionRange: versionRange,
|
||||
targetFramework: targetFramework ?? BundledTargetFramework.GetTargetFrameworkMoniker(),
|
||||
restoreDirectory: stageDirectory);
|
||||
restoreDirectory: stageDirectory,
|
||||
rootConfigDirectory: rootConfigDirectory);
|
||||
|
||||
try
|
||||
{
|
||||
|
@ -115,7 +117,8 @@ namespace Microsoft.DotNet.ToolPackage
|
|||
PackageId packageId,
|
||||
VersionRange versionRange,
|
||||
string targetFramework,
|
||||
DirectoryPath restoreDirectory)
|
||||
DirectoryPath restoreDirectory,
|
||||
DirectoryPath? rootConfigDirectory)
|
||||
{
|
||||
var tempProject = _tempProject ?? new DirectoryPath(Path.GetTempPath())
|
||||
.WithSubDirectories(Path.GetRandomFileName())
|
||||
|
@ -135,7 +138,7 @@ namespace Microsoft.DotNet.ToolPackage
|
|||
new XElement("TargetFramework", targetFramework),
|
||||
new XElement("RestorePackagesPath", restoreDirectory.Value),
|
||||
new XElement("RestoreProjectStyle", "DotnetToolReference"), // without it, project cannot reference tool package
|
||||
new XElement("RestoreRootConfigDirectory", Directory.GetCurrentDirectory()), // config file probing start directory
|
||||
new XElement("RestoreRootConfigDirectory", rootConfigDirectory?.Value ?? Directory.GetCurrentDirectory()), // config file probing start directory
|
||||
new XElement("DisableImplicitFrameworkReferences", "true"), // no Microsoft.NETCore.App in tool folder
|
||||
new XElement("RestoreFallbackFolders", "clear"), // do not use fallbackfolder, tool package need to be copied to tool folder
|
||||
new XElement("RestoreAdditionalProjectSources", // use fallbackfolder as feed to enable offline
|
||||
|
|
|
@ -154,21 +154,17 @@ namespace Microsoft.DotNet.ToolPackage.Tests
|
|||
}
|
||||
|
||||
[Fact]
|
||||
public void GivenAConfigFileInCurrentDirectoryPackageInstallSucceeds()
|
||||
public void GivenAConfigFileRootDirectoryPackageInstallSucceeds()
|
||||
{
|
||||
var nugetConfigPath = WriteNugetConfigFileToPointToTheFeed();
|
||||
|
||||
var (store, installer, reporter, fileSystem) = Setup(useMock: false);
|
||||
|
||||
/*
|
||||
* In test, we don't want NuGet to keep look up, so we point current directory to nugetconfig.
|
||||
*/
|
||||
Directory.SetCurrentDirectory(nugetConfigPath.GetDirectoryPath().Value);
|
||||
|
||||
var package = installer.InstallPackage(
|
||||
packageId: TestPackageId,
|
||||
versionRange: VersionRange.Parse(TestPackageVersion),
|
||||
targetFramework: _testTargetframework);
|
||||
targetFramework: _testTargetframework,
|
||||
rootConfigDirectory: nugetConfigPath.GetDirectoryPath());
|
||||
|
||||
AssertPackageInstall(reporter, fileSystem, package, store);
|
||||
|
||||
|
@ -641,7 +637,7 @@ namespace Microsoft.DotNet.ToolPackage.Tests
|
|||
FilePath? tempProject = null,
|
||||
DirectoryPath? offlineFeed = null)
|
||||
{
|
||||
var root = new DirectoryPath(Path.Combine(Directory.GetCurrentDirectory(), Path.GetRandomFileName()));
|
||||
var root = new DirectoryPath(Path.Combine(Path.GetFullPath(TempRoot.Root), Path.GetRandomFileName()));
|
||||
var reporter = new BufferedReporter();
|
||||
|
||||
IFileSystem fileSystem;
|
||||
|
|
|
@ -40,6 +40,7 @@ namespace Microsoft.DotNet.Tools.Tests.ComponentMocks
|
|||
VersionRange versionRange = null,
|
||||
string targetFramework = null,
|
||||
FilePath? nugetConfig = null,
|
||||
DirectoryPath? rootConfigDirectory = null,
|
||||
string source = null,
|
||||
string verbosity = null)
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue