1
1
// Load the recipe
2
- #load nuget : ? package= NUnit . Cake . Recipe & version = 1.4 .0 - alpha . 12
2
+ #load nuget : ? package= NUnit . Cake . Recipe & version = 1.4 .0
3
3
// Comment out above line and uncomment below for local tests of recipe changes
4
4
//#load ../NUnit.Cake.Recipe/recipe/*.cake
5
5
@@ -20,8 +20,9 @@ BuildSettings.Initialize(
20
20
21
21
PackageDefinition NUnitConsoleNuGetPackage ;
22
22
PackageDefinition NUnitConsoleRunnerNuGetPackage ;
23
- PackageDefinition NUnitConsoleRunnerNetCorePackage ;
23
+ PackageDefinition NUnitConsoleRunnerDotNetToolPackage ;
24
24
PackageDefinition NUnitConsoleRunnerNet80Package ;
25
+ PackageDefinition NUnitAgentCorePackage ;
25
26
PackageDefinition NUnitEnginePackage ;
26
27
PackageDefinition NUnitEngineApiPackage ;
27
28
PackageDefinition NUnitExtensibilityApiPackage ;
@@ -36,11 +37,11 @@ BuildSettings.Packages.AddRange(new PackageDefinition[] {
36
37
HasFiles ( "LICENSE.txt" , "NOTICES.txt" ) ,
37
38
HasDirectory ( "tools" ) . WithFiles (
38
39
"nunit-console.exe" , "nunit-console.exe.config" , "nunit.engine.dll" ,
39
- "nunit.extensibility.dll" , "nunit.extensibility.api.dll" , "nunit.common.dll" ,
40
+ "nunit.extensibility.dll" , "nunit.extensibility.api.dll" , "nunit.common.dll" ,
40
41
"nunit.engine.api.dll" , "testcentric.metadata.dll" ) ,
41
42
HasDirectory ( "tools/agents/net462" ) . WithFiles (
42
43
"nunit-agent-net462.exe" , "nunit-agent-net462.exe.config" , "nunit-agent-net462-x86.exe" , "nunit-agent-net462-x86.exe.config" ,
43
- "nunit.agent.core.dll" , "nunit.extensibility.dll" , "nunit.extensibility.api.dll" ,
44
+ "nunit.agent.core.dll" , "nunit.extensibility.dll" , "nunit.extensibility.api.dll" ,
44
45
"nunit.common.dll" , "nunit.engine.api.dll" , "testcentric.metadata.dll" ) ,
45
46
HasDirectory ( "tools/agents/net8.0" ) . WithFiles (
46
47
"nunit-agent-net80.dll" , "nunit-agent-net80.dll.config" ,
@@ -52,7 +53,7 @@ BuildSettings.Packages.AddRange(new PackageDefinition[] {
52
53
"nunit.engine.pdb" , "nunit.extensibility.pdb" , "nunit.extensibility.api.pdb" ,
53
54
"nunit.common.pdb" , "nunit.engine.api.pdb" , "nunit-console.pdb" ) ,
54
55
HasDirectory ( "tools/agents/net462" ) . WithFiles (
55
- "nunit-agent-net462.pdb" , "nunit-agent-net462-x86.pdb" , "nunit.agent.core.pdb" ,
56
+ "nunit-agent-net462.pdb" , "nunit-agent-net462-x86.pdb" , "nunit.agent.core.pdb" ,
56
57
"nunit.extensibility.pdb" , "nunit.extensibility.api.pdb" , "nunit.common.pdb" , "nunit.engine.api.pdb" ) ,
57
58
HasDirectory ( "tools/agents/net8.0" ) . WithFiles (
58
59
"nunit-agent-net80.pdb" , "nunit.agent.core.pdb" , "nunit.extensibility.pdb" , "nunit.extensibility.api.pdb" ,
@@ -68,15 +69,15 @@ BuildSettings.Packages.AddRange(new PackageDefinition[] {
68
69
source : BuildSettings . NuGetDirectory + "runners/nunit.console-runner-with-extensions.nuspec" ,
69
70
checks : new PackageCheck [ ] { HasFile ( "LICENSE.txt" ) } ) ,
70
71
71
- NUnitConsoleRunnerNetCorePackage = new DotNetToolPackage (
72
+ NUnitConsoleRunnerDotNetToolPackage = new DotNetToolPackage (
72
73
id : "NUnit.ConsoleRunner.NetCore" ,
73
74
source : BuildSettings . NuGetDirectory + "runners/nunit.console-runner.netcore.nuspec" ,
74
75
checks : new PackageCheck [ ]
75
76
{
76
77
HasFiles ( "nunit.exe" ) ,
77
78
HasDirectory ( ".store/nunit.consolerunner.netcore/**/tools/net8.0/any" ) . WithFiles (
78
79
"nunit-netcore-console.dll" , "nunit-netcore-console.dll.config" ,
79
- "nunit.engine.dll" , "nunit.agent.core.dll" , "nunit.extensibility.dll" ,
80
+ "nunit.engine.dll" , "nunit.agent.core.dll" , "nunit.extensibility.dll" ,
80
81
"nunit.extensibility.api.dll" , "nunit.engine.api.dll" , "testcentric.metadata.dll" ,
81
82
"Microsoft.Extensions.DependencyModel.dll" )
82
83
} ,
@@ -104,6 +105,32 @@ BuildSettings.Packages.AddRange(new PackageDefinition[] {
104
105
+ $ "nunit-console-runner-v4.{ BuildSettings . PackageVersion } /tools/nunit-console.exe") ,
105
106
tests : StandardRunnerTests ) ,
106
107
108
+ NUnitAgentCorePackage = new NuGetPackage (
109
+ id : "NUnit.Agent.Core" ,
110
+ source : BuildSettings . NuGetDirectory + "nunit.agent.core/nunit.agent.core.nuspec" ,
111
+ checks : new PackageCheck [ ]
112
+ {
113
+ HasFiles ( "LICENSE.txt" , "NOTICES.txt" ) ,
114
+ HasDirectory ( "lib/net462" ) . WithFiles (
115
+ "nunit.agent.core.dll" , "nunit.extensibility.dll" , "nunit.extensibility.api.dll" ,
116
+ "nunit.common.dll" , "nunit.engine.api.dll" , "testcentric.metadata.dll" ) ,
117
+ HasDirectory ( "lib/net8.0" ) . WithFiles (
118
+ "nunit.agent.core.dll" , "nunit.extensibility.dll" , "nunit.extensibility.api.dll" ,
119
+ "nunit.common.dll" , "nunit.engine.api.dll" , "testcentric.metadata.dll" ,
120
+ "Microsoft.Extensions.DependencyModel.dll" )
121
+ } ,
122
+ symbols : new PackageCheck [ ]
123
+ {
124
+ HasDirectory ( "lib/net462" ) . WithFiles (
125
+ "nunit.agent.core.pdb" , "nunit.extensibility.pdb" , "nunit.extensibility.api.pdb" ,
126
+ "nunit.common.pdb" , "nunit.engine.api.pdb" ) ,
127
+ HasDirectory ( "lib/net8.0" ) . WithFiles (
128
+ "nunit.agent.core.pdb" , "nunit.extensibility.pdb" , "nunit.extensibility.api.pdb" ,
129
+ "nunit.common.pdb" , "nunit.engine.api.pdb" )
130
+ } ,
131
+ testRunner : new DirectTestAgentRunner ( ) ,
132
+ tests : AgentCoreTests ) ,
133
+
107
134
NUnitEnginePackage = new NuGetPackage (
108
135
id : "NUnit.Engine" ,
109
136
source : BuildSettings . NuGetDirectory + "engine/nunit.engine.nuspec" ,
@@ -140,7 +167,7 @@ BuildSettings.Packages.AddRange(new PackageDefinition[] {
140
167
} ,
141
168
testRunner : new AgentRunner (
142
169
BuildSettings . NuGetTestDirectory + $ "NUnit.Engine.{ BuildSettings . PackageVersion } /agents") ,
143
- tests : AgentTests ) ,
170
+ tests : EngineTests ) ,
144
171
145
172
NUnitEngineApiPackage = new NuGetPackage (
146
173
id : "NUnit.Engine.Api" ,
@@ -169,8 +196,9 @@ BuildSettings.Packages.AddRange(new PackageDefinition[] {
169
196
} )
170
197
} ) ;
171
198
199
+
172
200
//////////////////////////////////////////////////////////////////////
173
- // PACKAGE TEST RUNNER
201
+ // CONSOLE PACKAGE TEST RUNNER
174
202
//////////////////////////////////////////////////////////////////////
175
203
176
204
// Use the console runner we just built to run package tests
@@ -190,6 +218,51 @@ public class ConsoleRunnerSelfTester : TestRunner, IPackageTestRunner
190
218
}
191
219
}
192
220
221
+ //////////////////////////////////////////////////////////////////////
222
+ // AGENT CORE PACKAGE TEST RUNNER
223
+ //////////////////////////////////////////////////////////////////////
224
+
225
+ public class DirectTestAgentRunner : TestRunner , IPackageTestRunner
226
+ {
227
+ public int RunPackageTest ( string arguments , bool redirectOutput )
228
+ {
229
+ // First argument must be relative path to a test assembly.
230
+ // It's immediate directory name is the name of the runtime.
231
+ string testAssembly = arguments . Trim ( ) ;
232
+ testAssembly = BuildSettings . OutputDirectory + ( testAssembly [ 0 ] == '"'
233
+ ? testAssembly . Substring ( 1 , testAssembly . IndexOf ( '"' , 1 ) - 1 )
234
+ : testAssembly . Substring ( 0 , testAssembly . IndexOf ( ' ' ) ) ) ;
235
+
236
+ if ( ! System . IO . File . Exists ( testAssembly ) )
237
+ throw new FileNotFoundException ( $ "File not found: { testAssembly } ") ;
238
+
239
+ string testRuntime = System . IO . Path . GetFileName ( System . IO . Path . GetDirectoryName ( testAssembly ) ) ;
240
+ string agentRuntime = testRuntime ;
241
+
242
+ if ( agentRuntime . EndsWith ( "-windows" ) )
243
+ agentRuntime = agentRuntime . Substring ( 0 , 6 ) ;
244
+
245
+ // Avoid builds we don't have
246
+ if ( agentRuntime == "net35" )
247
+ agentRuntime = "net20" ;
248
+ else if ( agentRuntime == "net5.0" )
249
+ agentRuntime = "net6.0" ;
250
+
251
+ var executablePath = BuildSettings . OutputDirectory + $ "{ agentRuntime } /DirectTestAgent.exe";
252
+
253
+ if ( ! System . IO . File . Exists ( executablePath ) )
254
+ throw new FileNotFoundException ( $ "File not found: { executablePath } ") ;
255
+
256
+ Console . WriteLine ( $ "Trying to run { executablePath } with arguments { arguments } ") ;
257
+
258
+ return BuildSettings . Context . StartProcess ( executablePath , new ProcessSettings ( )
259
+ {
260
+ Arguments = arguments ,
261
+ WorkingDirectory = BuildSettings . OutputDirectory
262
+ } ) ;
263
+ }
264
+ }
265
+
193
266
//////////////////////////////////////////////////////////////////////
194
267
// EXECUTION
195
268
//////////////////////////////////////////////////////////////////////
0 commit comments