Skip to content

Commit 050e574

Browse files
committed
Define PackageContent in Script
1 parent 9793a79 commit 050e574

File tree

4 files changed

+91
-45
lines changed

4 files changed

+91
-45
lines changed

KnownExtensions.cake

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
using System.Reflection;
2+
3+
// Static class holding information about known extensions.
4+
public static class KnownExtensions
5+
{
6+
// Static Variables representing well-known Extensions with the latest tested version
7+
public static ExtensionSpecifier NUnitV2Driver = new ExtensionSpecifier(
8+
"NUnit.Extension.NUnitV2Driver", "nunit-extension-nunit-v2-driver", "3.9.0");
9+
public static ExtensionSpecifier NUnitProjectLoader = new ExtensionSpecifier(
10+
"NUnit.Extension.NUnitProjectLoader", "nunit-extension-nunit-project-loader", "4.0.0-dev00016");
11+
public static ExtensionSpecifier VSProjectLoader = new ExtensionSpecifier(
12+
"NUnit.Extension.VSProjectLoader", "nunit-extension-vs-project-loader", "3.9.0");
13+
public static ExtensionSpecifier NUnitV2ResultWriter = new ExtensionSpecifier(
14+
"NUnit.Extension.NUnitV2ResultWriter", "nunit-extension-nunit-v2-result-writer", "4.0.0-beta.1");
15+
public static ExtensionSpecifier Net462PluggableAgent = new ExtensionSpecifier(
16+
"NUnit.Extension.Net462PluggableAgent", "nunit-extension-net462-pluggable-agent", "4.1.0-alpha.5");
17+
public static ExtensionSpecifier Net80PluggableAgent = new ExtensionSpecifier(
18+
"NUnit.Extension.Net80PluggableAgent", "nunit-extension-net80-pluggable-agent", "4.1.0-alpha.6");
19+
public static ExtensionSpecifier Net90PluggableAgent = new ExtensionSpecifier(
20+
"NUnit.Extension.Net90PluggableAgent", "nunit-extension-net90-pluggable-agent", "4.1.0-alpha.4");
21+
22+
private static ExtensionSpecifier[] BundledAgents =>
23+
[
24+
Net462PluggableAgent,
25+
Net80PluggableAgent,
26+
Net90PluggableAgent
27+
];
28+
29+
public static IEnumerable<PackageReference> BundledNuGetAgents =>
30+
BundledAgents.Select(a => a.NuGetPackage);
31+
32+
public static IEnumerable<PackageReference> BundledChocolateyAgents =>
33+
BundledAgents.Select(a => a.ChocoPackage);
34+
}
35+
36+
Task("InstallNuGetAgents")
37+
.Description("Installs just the NuGet agents we bundle with the GUI runner in the BIN directory for testing.")
38+
.Does(() =>
39+
{
40+
foreach (var agent in KnownExtensions.BundledNuGetAgents)
41+
agent.Install(BuildSettings.ProjectDirectory + "bin");
42+
});
43+
44+
Task("InstallChocolateyAgents")
45+
.Description("Installs just the Chocolatey agents we bundle with the GUI runner in the BIN directory for testing.")
46+
.Does(() =>
47+
{
48+
foreach (var agent in KnownExtensions.BundledNuGetAgents)
49+
agent.Install(BuildSettings.ProjectDirectory + "bin");
50+
});

NUnitConsole.sln

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
2121
GitReleaseManager.yaml = GitReleaseManager.yaml
2222
GitVersion.yml = GitVersion.yml
2323
global.json = global.json
24+
KnownExtensions.cake = KnownExtensions.cake
2425
LICENSE.txt = LICENSE.txt
2526
MixedTests.nunit = MixedTests.nunit
2627
NetCoreTests.nunit = NetCoreTests.nunit

build.cake

Lines changed: 37 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
// Load the recipe
2-
#load nuget:?package=NUnit.Cake.Recipe&version=1.6.0-alpha.6
2+
#load nuget:?package=NUnit.Cake.Recipe&version=1.6.0-alpha.8
33
// Comment out above line and uncomment below for local tests of recipe changes
44
//#load ../NUnit.Cake.Recipe/recipe/*.cake
55

66
// Load additional cake files
77
#load package-tests.cake
8+
#load KnownExtensions.cake
89

910
// Initialize BuildSettings
1011
BuildSettings.Initialize(
@@ -20,6 +21,10 @@ BuildSettings.Initialize(
2021
//////////////////////////////////////////////////////////////////////
2122

2223
var THIS_VERSION = BuildSettings.PackageVersion;
24+
var RUNNER_DESCRIPTION =
25+
"This package includes the console runner and test engine for version 3 and higher of the NUnit unit-testing framework." +
26+
"\r\n\nAny extensions, if needed, may be installed as separate packages.";
27+
2328
PackageDefinition NUnitExtensibilityApiPackage = new NuGetPackage(
2429
id: "NUnit.Extensibility.Api",
2530
source: BuildSettings.SourceDirectory + "NUnitCommon/nunit.extensibility.api/nunit.extensibility.api.csproj",
@@ -144,49 +149,52 @@ PackageDefinition NUnitConsoleRunnerDotNetToolPackage = new DotNetToolPackage(
144149
// 1. NUnit.ConsoleRunner needs to use it to specify the bundled pluggable agents
145150
PackageDefinition NUnitConsoleRunnerNuGetPackage = new NuGetPackage(
146151
id: "NUnit.ConsoleRunner",
147-
source: BuildSettings.NuGetDirectory + "runners/nunit.console-runner.nuspec",
152+
description: RUNNER_DESCRIPTION,
153+
packageContent: new PackageContent()
154+
.WithRootFiles("../../LICENSE.txt", "../../NOTICES.txt", "../../nunit_256.png")
155+
.WithDirectories(
156+
new DirectoryContent("tools").WithFiles(
157+
"net462/nunit-console.exe", "net462/nunit-console.exe.config", "net462/nunit.engine.dll",
158+
"net462/nunit.extensibility.dll", "net462/nunit.extensibility.api.dll", "net462/nunit.common.dll",
159+
"net462/nunit-console.pdb", "net462/nunit.engine.pdb", "net462/nunit.engine.api.pdb",
160+
"net462/nunit.extensibility.pdb", "net462/nunit.extensibility.api.pdb", "net462/nunit.common.pdb",
161+
"net462/nunit.engine.api.dll", "net462/testcentric.metadata.dll"))
162+
.WithDependencies(KnownExtensions.BundledNuGetAgents),
163+
// Keeping separate check for dependencies until PackageContent automatic verification handles them
148164
checks: new PackageCheck[] {
149-
HasFiles("LICENSE.txt", "NOTICES.txt"),
150-
HasDirectory("tools").WithFiles(
151-
"nunit-console.exe", "nunit-console.exe.config", "nunit.engine.dll",
152-
"nunit.extensibility.dll", "nunit.extensibility.api.dll", "nunit.common.dll",
153-
"nunit.engine.api.dll", "testcentric.metadata.dll"),
154-
HasDependency("NUnit.Extension.Net462PluggableAgent", "4.1.0-alpha.5"),
155-
HasDependency("NUnit.Extension.Net80PluggableAgent", "4.1.0-alpha.6"),
156-
HasDependency("NUnit.Extension.Net90PluggableAgent", "4.1.0-alpha.4")
157-
},
158-
symbols: new PackageCheck[] {
159-
HasDirectory("tools").WithFiles(
160-
"nunit.engine.pdb", "nunit.extensibility.pdb", "nunit.extensibility.api.pdb",
161-
"nunit.common.pdb", "nunit.engine.api.pdb", "nunit-console.pdb"),
165+
HasDependencies(KnownExtensions.BundledNuGetAgents)
162166
},
163167
testRunner: new ConsoleRunnerSelfTester(BuildSettings.NuGetTestDirectory
164168
+ $"NUnit.ConsoleRunner.{BuildSettings.PackageVersion}/tools/nunit-console.exe"),
165169
tests: StandardRunnerTests);
166170

167-
// 2. NUnit.Console is a meta-package
168-
PackageDefinition NUnitConsoleNuGetPackage = new NuGetPackage(
169-
id: "NUnit.Console",
170-
source: BuildSettings.NuGetDirectory + "runners/nunit.console-runner-with-extensions.nuspec",
171-
checks: new PackageCheck[] { HasFile("LICENSE.txt") });
172-
173171
// 3. The chocolatey console runner has to follow special chocolatey conventions
174172
PackageDefinition NUnitConsoleRunnerChocolateyPackage = new ChocolateyPackage(
175173
id: "nunit-console-runner",
176-
source: BuildSettings.ChocolateyDirectory + "nunit-console-runner.nuspec",
174+
description: RUNNER_DESCRIPTION,
175+
packageContent: new PackageContent()
176+
.WithDirectories(
177+
new DirectoryContent("tools").WithFiles(
178+
"../../LICENSE.txt", "../../NOTICES.txt", "../../choco/VERIFICATION.txt",
179+
"net462/nunit-console.exe", "net462/nunit-console.exe.config",
180+
"net462/nunit.engine.dll", "net462/nunit.extensibility.dll", "net462/nunit.extensibility.api.dll",
181+
"net462/nunit.common.dll", "net462/nunit.engine.api.dll", "net462/testcentric.metadata.dll") )
182+
.WithDependencies(KnownExtensions.BundledChocolateyAgents),
183+
// Keeping separate check for dependencies until PackageContent automatic verification handles them
177184
checks: new PackageCheck[] {
178-
HasDirectory("tools").WithFiles(
179-
"LICENSE.txt", "NOTICES.txt", "VERIFICATION.txt", "nunit-console.exe", "nunit-console.exe.config",
180-
"nunit.engine.dll", "nunit.extensibility.dll", "nunit.extensibility.api.dll",
181-
"nunit.common.dll", "nunit.engine.api.dll", "testcentric.metadata.dll"),
182-
HasDependency("nunit-extension-net462-pluggable-agent", "4.1.0-alpha.5"),
183-
HasDependency("nunit-extension-net80-pluggable-agent", "4.1.0-alpha.6"),
184-
HasDependency("nunit-extension-net90-pluggable-agent", "4.1.0-alpha.4")
185+
HasDependencies(KnownExtensions.BundledChocolateyAgents)
185186
},
186187
testRunner: new ConsoleRunnerSelfTester(BuildSettings.ChocolateyTestDirectory
187188
+ $"nunit-console-runner.{BuildSettings.PackageVersion}/tools/nunit-console.exe"),
188189
tests: StandardRunnerTests);
189190

191+
// NUnit.Console is a meta-package and is built using a nuspec file
192+
PackageDefinition NUnitConsoleNuGetPackage = new NuGetPackage(
193+
id: "NUnit.Console",
194+
source: BuildSettings.NuGetDirectory + "runners/nunit.console-runner-with-extensions.nuspec",
195+
basePath: BuildSettings.ProjectDirectory,
196+
checks: new PackageCheck[] { HasFile("LICENSE.txt") });
197+
190198
// Add all packages to BuildSettings in order they should be build.
191199
// Dependencies must precede all the packages that depend on them.
192200
BuildSettings.Packages.AddRange(new PackageDefinition[] {
@@ -268,19 +276,6 @@ public class DirectTestAgentRunner : TestRunner, IPackageTestRunner
268276
}
269277
}
270278

271-
//////////////////////////////////////////////////////////////////////
272-
// ADDITIONAL TARGETS USED IN DEVELOPMENT
273-
//////////////////////////////////////////////////////////////////////
274-
275-
Task("InstallBundledAgents")
276-
.Description("Installs just the agents we bundle with the GUI runner.")
277-
.Does(() =>
278-
{
279-
new PackageReference("NUnit.Extension.Net462PluggableAgent", "4.1.0-alpha.5").Install(BuildSettings.ProjectDirectory + "bin");
280-
new PackageReference("NUnit.Extension.Net80PluggableAgent", "4.1.0-alpha.6").Install(BuildSettings.ProjectDirectory + "bin");
281-
new PackageReference("NUnit.Extension.Net90PluggableAgent", "4.1.0-alpha.4").Install(BuildSettings.ProjectDirectory + "bin");
282-
});
283-
284279
//////////////////////////////////////////////////////////////////////
285280
// EXECUTION
286281
//////////////////////////////////////////////////////////////////////

nuget/runners/nunit.console-runner-with-extensions.nuspec

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
<projectUrl>https://nunit.org</projectUrl>
1111
<repository type="git" url="https://github.com/nunit/nunit-console"/>
1212
<iconUrl>https://cdn.rawgit.com/nunit/resources/master/images/icon/nunit_256.png</iconUrl>
13-
<icon>images\nunit_256.png</icon>
13+
<icon>nunit_256.png</icon>
1414
<requireLicenseAcceptance>false</requireLicenseAcceptance>
1515
<summary>Console runner for the NUnit unit-testing framework with selected extensions.</summary>
1616
<description>
@@ -35,7 +35,7 @@
3535
</dependencies>
3636
</metadata>
3737
<files>
38-
<file src="../../LICENSE.txt" />
39-
<file src="../../nunit_256.png" target="images" />
38+
<file src="LICENSE.txt" />
39+
<file src="nunit_256.png" />
4040
</files>
4141
</package>

0 commit comments

Comments
 (0)