Skip to content

Commit 63d671b

Browse files
committed
Eliminate .NET Standard 2.0 build of nunit.engine
1 parent 4b99290 commit 63d671b

File tree

12 files changed

+89
-37
lines changed

12 files changed

+89
-37
lines changed

NUnitConsole.sln

+8
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ EndProject
100100
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "zip", "zip", "{20005864-BE82-412D-99BF-288E2D8370E9}"
101101
ProjectSection(SolutionItems) = preProject
102102
zip\nunit.bundle.addins = zip\nunit.bundle.addins
103+
zip\nunit.bundle.agent.addins = zip\nunit.bundle.agent.addins
103104
EndProjectSection
104105
EndProject
105106
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "nunit.engine.core.tests", "src\NUnitEngine\nunit.engine.core.tests\nunit.engine.core.tests.csproj", "{CACC0520-B452-4310-A33C-DC944129ACDD}"
@@ -153,6 +154,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "net8.0", "net8.0", "{303CF8
153154
EndProject
154155
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "mock-assembly-v2", "src\TestData\mock-assembly-v2\mock-assembly-v2.csproj", "{AD40CA55-35CC-41CA-85F5-8FDA4ECAFF78}"
155156
EndProject
157+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FakeExtensions", "src\TestData\FakeExtensions\FakeExtensions.csproj", "{D6C217E0-BFB7-4C80-8D50-C969F46EBC59}"
158+
EndProject
156159
Global
157160
GlobalSection(SolutionConfigurationPlatforms) = preSolution
158161
Debug|Any CPU = Debug|Any CPU
@@ -235,6 +238,10 @@ Global
235238
{AD40CA55-35CC-41CA-85F5-8FDA4ECAFF78}.Debug|Any CPU.Build.0 = Debug|Any CPU
236239
{AD40CA55-35CC-41CA-85F5-8FDA4ECAFF78}.Release|Any CPU.ActiveCfg = Release|Any CPU
237240
{AD40CA55-35CC-41CA-85F5-8FDA4ECAFF78}.Release|Any CPU.Build.0 = Release|Any CPU
241+
{D6C217E0-BFB7-4C80-8D50-C969F46EBC59}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
242+
{D6C217E0-BFB7-4C80-8D50-C969F46EBC59}.Debug|Any CPU.Build.0 = Debug|Any CPU
243+
{D6C217E0-BFB7-4C80-8D50-C969F46EBC59}.Release|Any CPU.ActiveCfg = Release|Any CPU
244+
{D6C217E0-BFB7-4C80-8D50-C969F46EBC59}.Release|Any CPU.Build.0 = Release|Any CPU
238245
EndGlobalSection
239246
GlobalSection(SolutionProperties) = preSolution
240247
HideSolutionNode = FALSE
@@ -271,6 +278,7 @@ Global
271278
{E43A3E4B-B050-471B-B43C-0DF60FD44376} = {2ECE1CFB-9436-4149-B7E4-1FB1786FDE9F}
272279
{303CF83E-2A87-4882-8CAC-3EB59AAD81FC} = {F3E87D0F-6F06-4C0B-AE06-42C0834C3C6E}
273280
{AD40CA55-35CC-41CA-85F5-8FDA4ECAFF78} = {2ECE1CFB-9436-4149-B7E4-1FB1786FDE9F}
281+
{D6C217E0-BFB7-4C80-8D50-C969F46EBC59} = {2ECE1CFB-9436-4149-B7E4-1FB1786FDE9F}
274282
EndGlobalSection
275283
GlobalSection(ExtensibilityGlobals) = postSolution
276284
SolutionGuid = {D8E4FC26-5422-4C51-8BBC-D1AC0A578711}

build.cake

+8-5
Original file line numberDiff line numberDiff line change
@@ -119,13 +119,18 @@ BuildSettings.Packages.AddRange(new PackageDefinition[] {
119119
source: BuildSettings.ZipImageDirectory,
120120
checks: new PackageCheck[] {
121121
HasFiles("LICENSE.txt", "NOTICES.txt", "CHANGES.txt"),
122-
HasDirectory("bin/net462").WithFiles("nunit3-console.exe", "nunit3-console.exe.config", "nunit3-console.pdb").AndFiles(ENGINE_FILES).AndFiles(ENGINE_PDB_FILES),
123-
HasDirectory("bin/netstandard2.0").WithFiles(ENGINE_FILES).AndFiles(ENGINE_PDB_FILES),
122+
HasDirectory("bin/net462").WithFiles("nunit3-console.exe", "nunit3-console.exe.config",
123+
"nunit3-console.pdb").AndFiles(ENGINE_FILES).AndFiles(ENGINE_PDB_FILES),
124+
HasDirectory("bin/net462/addins").WithFiles(
125+
"nunit.core.dll", "nunit.core.interfaces.dll", "nunit.engine.api.dll",
126+
"nunit.v2.driver.dll", "nunit-project-loader.dll", "nunit-v2-result-writer.dll",
127+
"teamcity-event-listener.dll", "vs-project-loader.dll"),
128+
HasDirectory("bin/netstandard2.0").WithFiles(ENGINE_CORE_FILES).AndFiles(ENGINE_CORE_PDB_FILES),
124129
HasDirectory("bin/netcoreapp3.1").WithFiles(ENGINE_CORE_FILES).AndFiles(ENGINE_CORE_PDB_FILES),
125130
HasDirectory("bin/agents/net462").WithFiles(AGENT_FILES).AndFiles(AGENT_PDB_FILES),
126131
HasDirectory("bin/agents/net6.0").WithFiles(AGENT_FILES_NETCORE).AndFiles(AGENT_PDB_FILES_NETCORE),
127132
HasDirectory("bin/agents/net7.0").WithFiles(AGENT_FILES_NETCORE).AndFiles(AGENT_PDB_FILES_NETCORE),
128-
HasDirectory("bin/agents/net8.0").WithFiles(AGENT_FILES_NETCORE).AndFiles(AGENT_PDB_FILES_NETCORE)
133+
HasDirectory("bin/agents/net8.0").WithFiles(AGENT_FILES_NETCORE).AndFiles(AGENT_PDB_FILES_NETCORE),
129134
},
130135
testRunner: new ConsoleRunnerSelfTester(BuildSettings.ZipTestDirectory
131136
+ $"NUnit.Console.{BuildSettings.PackageVersion}/bin/net462/nunit3-console.exe"),
@@ -146,10 +151,8 @@ BuildSettings.Packages.AddRange(new PackageDefinition[] {
146151
checks: new PackageCheck[] {
147152
HasFiles("LICENSE.txt", "NOTICES.txt"),
148153
HasDirectory("lib/net462").WithFiles(ENGINE_FILES),
149-
HasDirectory("lib/netstandard2.0").WithFiles(ENGINE_FILES),
150154
HasDirectory("lib/net8.0").WithFiles(ENGINE_FILES).AndFile("Microsoft.Extensions.DependencyModel.dll"),
151155
HasDirectory("contentFiles/any/lib/net462").WithFile("nunit.engine.nuget.addins"),
152-
HasDirectory("contentFiles/any/lib/netstandard2.0").WithFile("nunit.engine.nuget.addins"),
153156
HasDirectory("contentFiles/any/lib/net8.0").WithFile("nunit.engine.nuget.addins"),
154157
HasDirectory("contentFiles/any/agents/net462").WithFiles(AGENT_FILES).AndFile("nunit.agent.addins")
155158
},

nuget/engine/nunit.engine.nuspec

-9
Original file line numberDiff line numberDiff line change
@@ -71,15 +71,6 @@
7171
<file src="../../nuget/engine/nunit.agent.addins" target="contentFiles/any/agents/net40"/>
7272
<file src="../../nuget/engine/nunit.agent.addins" target="contentFiles/any/agents/netcoreapp3.1"/>
7373

74-
<file src="netstandard2.0/nunit.engine.dll" target="lib/netstandard2.0" />
75-
<file src="netstandard2.0/nunit.engine.pdb" target="lib/netstandard2.0" />
76-
<file src="netstandard2.0/nunit.engine.core.dll" target="lib/netstandard2.0" />
77-
<file src="netstandard2.0/nunit.engine.core.pdb" target="lib/netstandard2.0" />
78-
<file src="netstandard2.0/nunit.engine.api.dll" target="lib/netstandard2.0" />
79-
<file src="netstandard2.0/nunit.engine.api.pdb" target="lib/netstandard2.0" />
80-
<file src="netstandard2.0/testcentric.engine.metadata.dll" target="lib/netstandard2.0" />
81-
<file src="../../nuget/engine/nunit.engine.nuget.addins" target="contentFiles/any/lib/netstandard2.0"/>
82-
8374
<file src="net8.0/nunit.engine.dll" target="lib/net8.0" />
8475
<file src="net8.0/nunit.engine.pdb" target="lib/net8.0" />
8576
<file src="net8.0/nunit.engine.core.dll" target="lib/net8.0" />

package-tests.cake

+2-2
Original file line numberDiff line numberDiff line change
@@ -264,7 +264,7 @@ StandardRunnerTests.Add(new PackageTest(
264264
StandardRunnerTests.Add(new PackageTest(
265265
1, "V2FrameworkDriverTest",
266266
"Run mock-assembly-v2 using the V2 Driver in process",
267-
"v2-tests/net462/mock-assembly-v2.dll --inprocess",
267+
"v2-tests/net462/mock-assembly-v2.dll",
268268
new ExpectedResult("Failed")
269269
{
270270
Total = 28,
@@ -280,7 +280,7 @@ StandardRunnerTests.Add(new PackageTest(
280280
StandardRunnerTests.Add(new PackageTest(
281281
1, "V2FrameworkDriverTest",
282282
"Run mock-assembly-v2 using the V2 Driver out of process",
283-
"v2-tests/net462/mock-assembly-v2.dll --trace:Debug",
283+
"v2-tests/net462/mock-assembly-v2.dll --list-extensions",
284284
new ExpectedResult("Failed")
285285
{
286286
Total = 28,

src/NUnitConsole/nunit3-console.tests/nunit3-console.tests.csproj

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
<PropertyGroup>
44
<RootNamespace>NUnit.ConsoleRunner.Tests</RootNamespace>
5-
<TargetFrameworks>net462;net6.0;net8.0</TargetFrameworks>
5+
<TargetFrameworks>net462;net8.0</TargetFrameworks>
66
<OutputType>Exe</OutputType>
77
<StartupObject>NUnit.Engine.Tests.Program</StartupObject>
88
<NoWarn>1685</NoWarn>

src/NUnitEngine/nunit.engine.core.tests/Services/ExtensionManagerTests.cs

+46-6
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
using NUnit.Engine.Internal;
1111
using NSubstitute;
1212
using NUnit.Engine.Internal.FileSystemAccess;
13+
using System.Diagnostics;
1314

1415
namespace NUnit.Engine.Services.Tests
1516
{
@@ -57,9 +58,12 @@ public void CreateExtensionManager()
5758
// Find actual extension points.
5859
_extensionManager.FindExtensionPoints(typeof(CoreEngine).Assembly);
5960
_extensionManager.FindExtensionPoints(typeof(ITestEngine).Assembly);
60-
61-
// Find dummy extensions in this test assembly.
62-
_extensionManager.FindExtensionsInAssembly(new ExtensionAssembly(GetType().Assembly.Location, false));
61+
// Find extensions.
62+
#if NETCOREAPP
63+
_extensionManager.FindExtensionsInAssembly(FakeExtensions("netstandard2.0"));
64+
#else
65+
_extensionManager.FindExtensionsInAssembly(FakeExtensions("net462"));
66+
#endif
6367
}
6468

6569
[Test]
@@ -161,21 +165,39 @@ public void SkipsGracefullyLoadingOtherFrameworkExtensionAssembly()
161165
Assert.That(() => service.FindExtensionsInAssembly(extensionAssembly), Throws.Nothing);
162166
}
163167

164-
[TestCaseSource(nameof(ValidCombos))]
168+
#if NETCOREAPP
169+
[TestCase("netstandard2.0", ExpectedResult = true)]
170+
[TestCase("net462", ExpectedResult = false)]
171+
//[TestCase("net20", ExpectedResult = false)]
172+
#elif NET40_OR_GREATER
173+
[TestCase("netstandard2.0", ExpectedResult = false)]
174+
[TestCase("net462", ExpectedResult = true)]
175+
//[TestCase("net20", ExpectedResult = true)]
176+
#else
177+
[TestCase("netstandard2.0", ExpectedResult = false)]
178+
[TestCase("net462", ExpectedResult = false)]
179+
//[TestCase("net20", ExpectedResult = true)]
180+
#endif
181+
public bool LoadTargetFramework(string tfm)
182+
{
183+
return _extensionManager.CanLoadTargetFramework(THIS_ASSEMBLY, FakeExtensions(tfm));
184+
}
185+
186+
//[TestCaseSource(nameof(ValidCombos))]
165187
public void ValidTargetFrameworkCombinations(FrameworkCombo combo)
166188
{
167189
Assert.That(() => _extensionManager.CanLoadTargetFramework(combo.RunnerAssembly, combo.ExtensionAssembly),
168190
Is.True);
169191
}
170192

171-
[TestCaseSource(nameof(InvalidTargetFrameworkCombos))]
193+
//[TestCaseSource(nameof(InvalidTargetFrameworkCombos))]
172194
public void InvalidTargetFrameworkCombinations(FrameworkCombo combo)
173195
{
174196
Assert.That(() => _extensionManager.CanLoadTargetFramework(combo.RunnerAssembly, combo.ExtensionAssembly),
175197
Is.False);
176198
}
177199

178-
[TestCaseSource(nameof(InvalidRunnerCombos))]
200+
//[TestCaseSource(nameof(InvalidRunnerCombos))]
179201
public void InvalidRunnerTargetFrameworkCombinations(FrameworkCombo combo)
180202
{
181203
var ex = Assert.Catch(() => _extensionManager.CanLoadTargetFramework(combo.RunnerAssembly, combo.ExtensionAssembly));
@@ -275,5 +297,23 @@ private static string GetSiblingDirectory(string dir)
275297
var file = new FileInfo(typeof(ExtensionManagerTests).Assembly.Location);
276298
return Path.Combine(file.Directory.Parent.FullName, dir);
277299
}
300+
301+
private static readonly Assembly THIS_ASSEMBLY = typeof(ExtensionManagerTests).Assembly;
302+
private static readonly string THIS_ASSEMBLY_DIRECTORY = Path.GetDirectoryName(THIS_ASSEMBLY.Location);
303+
private const string FAKE_EXTENSIONS_FILENAME = "FakeExtensions.dll";
304+
private static readonly string FAKE_EXTENSIONS_PARENT_DIRECTORY =
305+
Path.Combine(new DirectoryInfo(THIS_ASSEMBLY_DIRECTORY).Parent.FullName, "fakes");
306+
307+
/// <summary>
308+
/// Returns an ExtensionAssembly referring to a particular build of the fake test extensions
309+
/// assembly based on the argument provided.
310+
/// </summary>
311+
/// <param name="tfm">A test framework moniker. Must be one for which the fake extensions are built.</param>
312+
/// <returns></returns>
313+
private static ExtensionAssembly FakeExtensions(string tfm)
314+
{
315+
return new ExtensionAssembly(
316+
Path.Combine(FAKE_EXTENSIONS_PARENT_DIRECTORY, Path.Combine(tfm, FAKE_EXTENSIONS_FILENAME)), false);
317+
}
278318
}
279319
}

src/NUnitEngine/nunit.engine.tests/nunit.engine.tests.csproj

+2-12
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
<PropertyGroup>
44
<RootNamespace>NUnit.Engine.Tests</RootNamespace>
5-
<TargetFrameworks>net462;netcoreapp3.1;net8.0</TargetFrameworks>
5+
<TargetFrameworks>net462;net8.0</TargetFrameworks>
66
<OutputType>Exe</OutputType>
77
<SignAssembly>true</SignAssembly>
88
<AssemblyOriginatorKeyFile>..\..\nunit.snk</AssemblyOriginatorKeyFile>
@@ -17,13 +17,7 @@
1717
<Description>Tests of nunit.engine assembly</Description>
1818
</PropertyGroup>
1919

20-
<ItemGroup Condition="'$(TargetFramework)'=='netcoreapp3.1'">
21-
<PackageReference Include="NUnit" Version="3.14.0" />
22-
<PackageReference Include="NUnitLite" Version="3.14.0" />
23-
<PackageReference Include="NSubstitute" Version="2.0.3" />
24-
</ItemGroup>
25-
26-
<ItemGroup Condition="'$(TargetFramework)'!='netcoreapp3.1'">
20+
<ItemGroup>
2721
<PackageReference Include="NUnit" Version="4.2.2" />
2822
<PackageReference Include="NUnitLite" Version="4.2.2" />
2923
<PackageReference Include="NSubstitute" Version="5.1.0" />
@@ -35,10 +29,6 @@
3529
<Reference Include="System.Web" />
3630
</ItemGroup>
3731

38-
<ItemGroup Condition="'$(TargetFramework)'=='netcoreapp3.1'">
39-
<PackageReference Include="System.ComponentModel.TypeConverter" Version="4.3.0" />
40-
</ItemGroup>
41-
4232
<ItemGroup>
4333
<ProjectReference Include="..\..\TestData\mock-assembly\mock-assembly.csproj" />
4434
<ProjectReference Include="..\nunit.engine.api\nunit.engine.api.csproj" />

src/NUnitEngine/nunit.engine/nunit.engine.csproj

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
<PropertyGroup>
44
<RootNamespace>NUnit.Engine</RootNamespace>
5-
<TargetFrameworks>net462;netstandard2.0;net8.0</TargetFrameworks>
5+
<TargetFrameworks>net462;net8.0</TargetFrameworks>
66
<SignAssembly>true</SignAssembly>
77
<AssemblyOriginatorKeyFile>..\..\nunit.snk</AssemblyOriginatorKeyFile>
88
<DebugType>portable</DebugType>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
3+
<PropertyGroup>
4+
<TargetFrameworks>net462;netstandard2.0</TargetFrameworks>
5+
<RootNamespace>TestCentric.Extensibility</RootNamespace>
6+
<SignAssembly>true</SignAssembly>
7+
<AssemblyOriginatorKeyFile>..\..\nunit.snk</AssemblyOriginatorKeyFile>
8+
<OutputPath>..\..\..\bin\$(Configuration)\fakes</OutputPath>
9+
</PropertyGroup>
10+
11+
<ItemGroup>
12+
<ProjectReference Include="..\..\NUnitEngine\nunit.engine.api\nunit.engine.api.csproj" />
13+
</ItemGroup>
14+
15+
</Project>

src/TestData/mock-assembly-v2/MockAssembly.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
using System;
44
using NUnit.Framework;
55

6-
namespace TestCentric.Tests
6+
namespace NUnit.Tests
77
{
88
namespace Assemblies
99
{

zip/nunit.bundle.agent.addins

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
../../addins/nunit.v2.driver.dll
2+
../../addins/nunit-v2-result-writer.dll
3+
../../addins/nunit-project-loader.dll
4+
../../addins/vs-project-loader.dll
5+
../../addins/teamcity-event-listener.dll

0 commit comments

Comments
 (0)