Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions recipe/chocolatey-package.cake
Original file line number Diff line number Diff line change
Expand Up @@ -41,4 +41,12 @@ public class ChocolateyPackage : PackageDefinition
ArgumentCustomization = args => args.Append($"BIN_DIR={BuildSettings.OutputDirectory}")
});
}

protected override bool IsRemovableExtension(string id)
{
return
id.StartsWith("nunit-extension-") &&
!id.StartsWith(PackageId) &&
!id.Contains("pluggable-agent");
}
}
8 changes: 8 additions & 0 deletions recipe/nuget-package.cake
Original file line number Diff line number Diff line change
Expand Up @@ -99,4 +99,12 @@ public class NuGetPackage : PackageDefinition
else
throw new Exception("Verification failed!");
}

protected override bool IsRemovableExtension(string id)
{
return
id.StartsWith("NUnit.Extension.") &&
!id.StartsWith(PackageId) &&
!id.Contains("PluggableAgent");
}
}
25 changes: 10 additions & 15 deletions recipe/package-definition.cake
Original file line number Diff line number Diff line change
Expand Up @@ -210,7 +210,15 @@ public abstract class PackageDefinition
// Ensure we start out each package with no extensions installed.
// If any package test installs an extension, it remains available
// for subsequent tests of the same package only.
RemoveExtensions();
foreach (DirectoryPath dirPath in _context.GetDirectories(ExtensionInstallDirectory + "*"))
{
string dirName = dirPath.Segments.Last();
if (IsRemovableExtension(dirName))
{
_context.DeleteDirectory(dirPath, new DeleteDirectorySettings() { Recursive = true });
_context.Information("Deleted directory " + dirPath.GetDirectoryName());
}
}

// Package was defined with one or more TestRunners. These
// may or may not require installation.
Expand Down Expand Up @@ -297,20 +305,7 @@ public abstract class PackageDefinition
extension.InstallExtension(this);
}

// Remove all extensions prior to starting a run. Note that we avoid removing the the
// package being developed, which may actually be an extension itself.
protected void RemoveExtensions()
{
foreach (DirectoryPath dirPath in _context.GetDirectories(ExtensionInstallDirectory + "*"))
{
string dirName = dirPath.Segments.Last();
if ((dirName.StartsWith("NUnit.Extension.") || dirName.StartsWith("nunit-extension-")) && !dirName.StartsWith(PackageId))
{
_context.DeleteDirectory(dirPath, new DeleteDirectorySettings() { Recursive = true });
_context.Information("Deleted directory " + dirPath.GetDirectoryName());
}
}
}
protected abstract bool IsRemovableExtension(string dirName);

private void InstallRunners(IEnumerable<IPackageTestRunner> runners)
{
Expand Down
8 changes: 8 additions & 0 deletions recipe/zip-package.cake
Original file line number Diff line number Diff line change
Expand Up @@ -65,4 +65,12 @@ public class ZipPackage : PackageDefinition

_context.CopyDirectory(BuildSettings.ExtensionsDirectory, BuildSettings.ZipImageDirectory);
}

protected override bool IsRemovableExtension(string id)
{
return
id.StartsWith("NUnit.Extension.") &&
!id.StartsWith(PackageId) &&
!id.Contains("PluggableAgent");
}
}