Skip to content

Commit 96c2dad

Browse files
authored
Merge pull request #1496 from nunit/issue-1418
Test the NUnit V2 driver extension
2 parents faeafe1 + dee8764 commit 96c2dad

File tree

10 files changed

+399
-26
lines changed

10 files changed

+399
-26
lines changed

.github/workflows/NUnitConsoleAndEngine.CI.yml

+9
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,15 @@ jobs:
6161
path: "build-results/*.binlog"
6262
# if-no-files-found: error
6363

64+
- name: 🪵 Upload InternalTrace logs
65+
if: always()
66+
uses: actions/upload-artifact@v4
67+
with:
68+
name: InternalTraceLogs
69+
# This path is defined in build-settings.cake
70+
path: "*.log"
71+
# if-no-files-found: error
72+
6473
- name: 💾 Upload test results
6574
uses: actions/upload-artifact@v4
6675
if: always()

NUnitConsole.sln

+7
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "net8.0", "net8.0", "{303CF8
152152
nuget\runners\net8.0\DotnetToolSettings.xml = nuget\runners\net8.0\DotnetToolSettings.xml
153153
EndProjectSection
154154
EndProject
155+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "mock-assembly-v2", "src\TestData\mock-assembly-v2\mock-assembly-v2.csproj", "{AD40CA55-35CC-41CA-85F5-8FDA4ECAFF78}"
156+
EndProject
155157
Global
156158
GlobalSection(SolutionConfigurationPlatforms) = preSolution
157159
Debug|Any CPU = Debug|Any CPU
@@ -230,6 +232,10 @@ Global
230232
{E43A3E4B-B050-471B-B43C-0DF60FD44376}.Debug|Any CPU.Build.0 = Debug|Any CPU
231233
{E43A3E4B-B050-471B-B43C-0DF60FD44376}.Release|Any CPU.ActiveCfg = Release|Any CPU
232234
{E43A3E4B-B050-471B-B43C-0DF60FD44376}.Release|Any CPU.Build.0 = Release|Any CPU
235+
{AD40CA55-35CC-41CA-85F5-8FDA4ECAFF78}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
236+
{AD40CA55-35CC-41CA-85F5-8FDA4ECAFF78}.Debug|Any CPU.Build.0 = Debug|Any CPU
237+
{AD40CA55-35CC-41CA-85F5-8FDA4ECAFF78}.Release|Any CPU.ActiveCfg = Release|Any CPU
238+
{AD40CA55-35CC-41CA-85F5-8FDA4ECAFF78}.Release|Any CPU.Build.0 = Release|Any CPU
233239
EndGlobalSection
234240
GlobalSection(SolutionProperties) = preSolution
235241
HideSolutionNode = FALSE
@@ -265,6 +271,7 @@ Global
265271
{58E18ACC-1F7E-4395-817E-E7EF943E0C77} = {2ECE1CFB-9436-4149-B7E4-1FB1786FDE9F}
266272
{E43A3E4B-B050-471B-B43C-0DF60FD44376} = {2ECE1CFB-9436-4149-B7E4-1FB1786FDE9F}
267273
{303CF83E-2A87-4882-8CAC-3EB59AAD81FC} = {F3E87D0F-6F06-4C0B-AE06-42C0834C3C6E}
274+
{AD40CA55-35CC-41CA-85F5-8FDA4ECAFF78} = {2ECE1CFB-9436-4149-B7E4-1FB1786FDE9F}
268275
EndGlobalSection
269276
GlobalSection(ExtensibilityGlobals) = postSolution
270277
SolutionGuid = {D8E4FC26-5422-4C51-8BBC-D1AC0A578711}

build.cake

+25-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// Load the recipe
2-
#load nuget:?package=NUnit.Cake.Recipe&version=1.2.0-dev00007
2+
#load nuget:?package=NUnit.Cake.Recipe&version=1.2.0-dev00009
33
// Comment out above line and uncomment below for local tests of recipe changes
44
//#load ../NUnit.Cake.Recipe/recipe/*.cake
55

@@ -189,6 +189,30 @@ BuildSettings.Packages.AddRange(new PackageDefinition[] {
189189
})
190190
});
191191

192+
Task("BuildZipPackage")
193+
.Does(() =>
194+
{
195+
NUnitConsoleZipPackage.BuildPackage();
196+
});
197+
198+
Task("InstallZipPackage")
199+
.Does(() =>
200+
{
201+
NUnitConsoleZipPackage.InstallPackage();
202+
});
203+
204+
Task("VerifyZipPackage")
205+
.Does(() =>
206+
{
207+
NUnitConsoleZipPackage.VerifyPackage();
208+
});
209+
210+
Task("TestZipPackage")
211+
.Does(() =>
212+
{
213+
NUnitConsoleZipPackage.RunPackageTests();
214+
});
215+
192216
// Adhoc code to check content of a dotnet standalone executable
193217
// TODO: Incorporate this in the recipe itself
194218

+2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# Extensions built for a single runtime target
22
../../../../nunit-extension-*/tools/ # find extensions installed under chocolatey
3+
../../../../../nunit-extension-*/tools/ # find extensions installed under chocolatey
34

45
# Extensions built for multiple targets
56
../../../../nunit-extension-*/tools/*/ # find extensions installed under chocolatey
7+
../../../../../nunit-extension-*/tools/*/ # find extensions installed under chocolatey

package-tests.cake

+58-23
Original file line numberDiff line numberDiff line change
@@ -200,63 +200,98 @@ StandardRunnerTests.Add(new PackageTest(
200200
// RUN TESTS USING EACH OF OUR EXTENSIONS
201201
//////////////////////////////////////////////////////////////////////
202202

203+
// NUnit Project Loader Test
203204
StandardRunnerTests.Add(new PackageTest(
204205
1, "NUnitProjectTest",
205206
"Run NUnit project with mock-assembly.dll built for .NET 4.6.2 and 6.0",
206207
"../../NetFXTests.nunit --config=Release --trace=Debug",
207208
new MockAssemblyExpectedResult("net-4.6.2", "netcore-6.0"),
208209
KnownExtensions.NUnitProjectLoader.SetVersion("3.8.0")));
209210

211+
// V2 Result Writer Test
210212
StandardRunnerTests.Add(new PackageTest(
211213
1, "V2ResultWriterTest",
212214
"Run mock-assembly under .NET 6.0 and produce V2 output",
213215
"testdata/net6.0/mock-assembly.dll --result=TestResult.xml --result=NUnit2TestResult.xml;format=nunit2",
214216
new MockAssemblyExpectedResult("netcore-6.0"),
215217
KnownExtensions.NUnitV2ResultWriter.SetVersion("3.8.0")));
216218

219+
// VS Project Loader Tests
217220
StandardRunnerTests.Add(new PackageTest(
218221
1, "VSProjectLoaderTest_Project",
219222
"Run mock-assembly using the .csproj file",
220223
"../../src/TestData/mock-assembly/mock-assembly.csproj --config=Release",
221224
new MockAssemblyExpectedResult("net462", "netcore-3.1", "netcore-6.0", "netcore-7.0", "netcore-8.0"),
222225
KnownExtensions.VSProjectLoader.SetVersion("3.9.0")));
223226

224-
static ExpectedResult MockAssemblySolutionResult = new ExpectedResult("Failed")
225-
{
226-
Total = 37 * 5,
227-
Passed = 23 * 5,
228-
Failed = 5 * 5,
229-
Warnings = 1 * 5,
230-
Inconclusive = 1 * 5,
231-
Skipped = 7 * 5,
232-
Assemblies = new ExpectedAssemblyResult[]
233-
{
234-
new ExpectedAssemblyResult("mock-assembly.dll", "net-4.6.2"),
235-
new ExpectedAssemblyResult("mock-assembly.dll", "netcore-3.1"),
236-
new ExpectedAssemblyResult("mock-assembly.dll", "netcore-6.0"),
237-
new ExpectedAssemblyResult("mock-assembly.dll", "netcore-7.0"),
238-
new ExpectedAssemblyResult("mock-assembly.dll", "netcore-8.0"),
239-
new ExpectedAssemblyResult("notest-assembly.dll", "net-4.6.2"),
240-
new ExpectedAssemblyResult("notest-assembly.dll", "netcore-3.1"),
241-
new ExpectedAssemblyResult("notest-assembly.dll", "netstandard-2.0"),
242-
new ExpectedAssemblyResult("WpfApp.exe")
243-
}
244-
};
245-
246227
StandardRunnerTests.Add(new PackageTest(
247228
1, "VSProjectLoaderTest_Solution",
248229
"Run mock-assembly using the .sln file",
249230
"../../src/TestData/TestData.sln --config=Release --trace=Debug",
250-
MockAssemblySolutionResult,
231+
new ExpectedResult("Failed")
232+
{
233+
Total = 37 * 5,
234+
Passed = 23 * 5,
235+
Failed = 5 * 5,
236+
Warnings = 1 * 5,
237+
Inconclusive = 1 * 5,
238+
Skipped = 7 * 5,
239+
Assemblies = new ExpectedAssemblyResult[]
240+
{
241+
new ExpectedAssemblyResult("mock-assembly.dll", "net-4.6.2"),
242+
new ExpectedAssemblyResult("mock-assembly.dll", "netcore-3.1"),
243+
new ExpectedAssemblyResult("mock-assembly.dll", "netcore-6.0"),
244+
new ExpectedAssemblyResult("mock-assembly.dll", "netcore-7.0"),
245+
new ExpectedAssemblyResult("mock-assembly.dll", "netcore-8.0"),
246+
new ExpectedAssemblyResult("notest-assembly.dll", "net-4.6.2"),
247+
new ExpectedAssemblyResult("notest-assembly.dll", "netcore-3.1"),
248+
new ExpectedAssemblyResult("notest-assembly.dll", "netstandard-2.0"),
249+
new ExpectedAssemblyResult("WpfApp.exe")
250+
}
251+
},
251252
KnownExtensions.VSProjectLoader.SetVersion("3.9.0")));
252253

254+
// TeamCity Event Listener Test
253255
StandardRunnerTests.Add(new PackageTest(
254256
1, "TeamCityListenerTest",
255257
"Run mock-assembly with --teamcity enabled",
256258
"testdata/net462/mock-assembly.dll --teamcity",
257259
new MockAssemblyExpectedResult("net-4.6.2"),
258260
new ExtensionSpecifier("NUnit.Extension.TeamCityEventListener", "nunit-extension-teamcity-event-listener", "1.0.7")));
259261

262+
// V2 Framework Driver Tests
263+
StandardRunnerTests.Add(new PackageTest(
264+
1, "V2FrameworkDriverTest",
265+
"Run mock-assembly-v2 using the V2 Driver in process",
266+
"v2-tests/net462/mock-assembly-v2.dll --inprocess",
267+
new ExpectedResult("Failed")
268+
{
269+
Total = 28,
270+
Passed = 18,
271+
Failed = 5,
272+
Warnings = 0,
273+
Inconclusive = 1,
274+
Skipped = 4,
275+
Assemblies = new ExpectedAssemblyResult[] { new ExpectedAssemblyResult("mock-assembly-v2.dll", "net-4.6.2") }
276+
},
277+
new ExtensionSpecifier("NUnit.Extension.NUnitV2Driver", "nunit-extension-nunit-v2-driver", "3.9.0")));
278+
279+
StandardRunnerTests.Add(new PackageTest(
280+
1, "V2FrameworkDriverTest",
281+
"Run mock-assembly-v2 using the V2 Driver out of process",
282+
"v2-tests/net462/mock-assembly-v2.dll --trace:Debug",
283+
new ExpectedResult("Failed")
284+
{
285+
Total = 28,
286+
Passed = 18,
287+
Failed = 5,
288+
Warnings = 0,
289+
Inconclusive = 1,
290+
Skipped = 4,
291+
Assemblies = new ExpectedAssemblyResult[] { new ExpectedAssemblyResult("mock-assembly-v2.dll", "net-4.6.2") }
292+
},
293+
new ExtensionSpecifier("NUnit.Extension.NUnitV2Driver", "nunit-extension-nunit-v2-driver", "3.9.0")));
294+
260295
//////////////////////////////////////////////////////////////////////
261296
// SPECIAL CASES
262297
//////////////////////////////////////////////////////////////////////

src/NUnitEngine/nunit-agent/nunit-agent.csproj

+7-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,13 @@
2525
<ItemGroup>
2626
<Compile Include="..\nunit.engine.core\Internal\ExceptionHelper.cs" Link="ExceptionHelper.cs" />
2727
</ItemGroup>
28-
28+
29+
<ItemGroup Condition="'$(TargetFramework)'=='net462'">
30+
<Content Include="nunit.agent.addins">
31+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
32+
</Content>
33+
</ItemGroup>
34+
2935
<ItemGroup>
3036
<Content Include="..\..\..\nunit.ico">
3137
<Link>nunit.ico</Link>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
../../net462/addins/nunit.v2.driver.dll
2+
../../net462/addins/nunit-v2-result-writer.dll
3+
../../net462/addins/nunit-project-loader.dll
4+
../../net462/addins/vs-project-loader.dll
5+
../../net462/addins/teamcity-event-listener.dll

src/NUnitEngine/nunit.engine.core/Drivers/NUnit2DriverFactory.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ public IFrameworkDriver GetDriver(AppDomain domain, AssemblyName reference)
5858

5959
return AppDomain.CurrentDomain.CreateInstanceFromAndUnwrap(
6060
_driverNode.AssemblyPath, _driverNode.TypeName,
61-
false, 0, null, null, null, null) as IFrameworkDriver;
61+
false, 0, null, new[] { domain }, null, null) as IFrameworkDriver;
6262
}
6363
}
6464
}

0 commit comments

Comments
 (0)