Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update recipe and test runners #74

Merged
merged 1 commit into from
Mar 10, 2025
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
186 changes: 97 additions & 89 deletions build.cake
Original file line number Diff line number Diff line change
Expand Up @@ -4,20 +4,36 @@
#tool nuget:?package=NUnit.ConsoleRunner&version=3.15.5
#tool nuget:?package=NUnit.ConsoleRunner.NetCore&version=3.19.2
#tool nuget:?package=NUnit.ConsoleRunner.NetCore&version=3.18.3
#tool nuget:?package=NUnit.ConsoleRunner.NetCore&version=3.17.0
#tool nuget:?package=NUnit.ConsoleRunner.NetCore&version=3.15.5

// NOTE: Because of permission issues in installing the chocolatey
// versions of the NUnit console runner, all tests use the nuget
// packages. The test runners included in the recipe adjust the
// search path for extensions accordingly.

// StandardRunners is used as the default setting for our tests,
// since the standard runner can execute all of them
var StandardRunners = new IPackageTestRunner[] {
new NUnitConsoleRunner("NUnit.ConsoleRunner", "3.19.2"),
new NUnitConsoleRunner("NUnit.ConsoleRunner", "3.18.3"),
new NUnitConsoleRunner("NUnit.ConsoleRunner", "3.17.0"),
new NUnitConsoleRunner("NUnit.ConsoleRunner", "3.15.5"),
};

// Define runners to be used for testing packages
static readonly IPackageTestRunner[] PACKAGE_TEST_RUNNERS = new IPackageTestRunner[] {
new NUnitConsoleRunner("3.19.2"),
new NUnitConsoleRunner("3.18.3"),
new NUnitConsoleRunner("3.17.0"),
new NUnitConsoleRunner("3.15.5")
//new NUnit3NetCoreConsoleRunner("3.19.2"),
//new NUnit3NetCoreConsoleRunner("3.18.3"),
var NetCoreRunners = new IPackageTestRunner[] {
new NUnit3NetCoreConsoleRunner("NUnit.ConsoleRunner.NetCore", "3.19.2", "tools/net8.0/any/nunit3-console.exe"),
new NUnit3NetCoreConsoleRunner("NUnit.ConsoleRunner.NetCore", "3.18.3", "tools/net6.0/any/nunit3-console.exe"),
new NUnit3NetCoreConsoleRunner("NUnit.ConsoleRunner.NetCore", "3.17.0", "tools/net6.0/any/nunit3-console.exe"),
new NUnit3NetCoreConsoleRunner("NUnit.ConsoleRunner.NetCore", "3.15.5", "tools/net6.0/any/nunit3-console.exe")
};

// Load the recipe
#load nuget:?package=NUnit.Cake.Recipe&version=1.4.0-alpha.4
// For .NET Core tests, we override the default and use AllRunners,
// since both the standard and netcore runners can execute them.
var AllRunners = new List<IPackageTestRunner>( StandardRunners.Concat(NetCoreRunners) ).ToArray();

// Load the recipe
#load nuget:?package=NUnit.Cake.Recipe&version=1.4.0-alpha.5
// Comment out above line and uncomment below for local tests of recipe changes
//#load ../NUnit.Cake.Recipe/recipe/*.cake

Expand All @@ -34,68 +50,74 @@ BuildSettings.Initialize(
// PACKAGE TESTS
//////////////////////////////////////////////////////////////////////

PackageTest[] PackageTests = new PackageTest[]
var SingleAssembly_AllTestsPass = new PackageTest (1, "SingleAssembly_AllTestsPass")
{
Description = "Project with one assembly, all tests pass",
Arguments = "../../PassingAssembly.nunit",
ExpectedResult = new ExpectedResult("Passed") {
Total = 4, Passed = 4, Failed = 0, Warnings = 0, Inconclusive = 0, Skipped = 0,
Assemblies = new[] { new ExpectedAssemblyResult("test-lib-1.dll", "net-4.6.2") } }
};

var SingleAssembly_SomeTestsFail = new PackageTest (1, "SingleAssembly_SomeTestsFail")
{
Description = "Project with one assembly, some failures",
Arguments = "../../FailingAssembly.nunit",
ExpectedResult = new ExpectedResult("Failed") {
Total = 9, Passed = 4, Failed = 2, Warnings = 0, Inconclusive = 1, Skipped = 2,
Assemblies = new[] { new ExpectedAssemblyResult("test-lib-2.dll", "net-4.6.2") } }
};

var BothAssembliesTogether = new PackageTest (1, "BothAssembliesTogether")
{
Description = "Project with both assemblies",
Arguments = "../../BothAssemblies.nunit",
ExpectedResult = new ExpectedResult("Failed") {
Total = 13, Passed = 8, Failed = 2, Warnings = 0, Inconclusive = 1, Skipped = 2,
Assemblies = new[] {
new ExpectedAssemblyResult("test-lib-1.dll", "net-4.6.2"),
new ExpectedAssemblyResult("test-lib-2.dll", "net-4.6.2") } }
};

var SingleNetCoreAssembly_AllTestsPass = new PackageTest (1, "SingleNetCoreAssembly_AllTestsPass")
{
Description = "Project with one .NET Core assembly, all tests pass",
Arguments = "../../PassingAssemblyNetCore.nunit",
ExpectedResult = new ExpectedResult("Passed") {
Total = 4, Passed = 4, Failed = 0, Warnings = 0, Inconclusive = 0, Skipped = 0,
Assemblies = new[] { new ExpectedAssemblyResult("test-lib-1.dll", "netcore-6.0") } },
TestRunners = AllRunners
};

var SingleNetCoreAssembly_SomeTestsFail = new PackageTest (1, "SingleNetCoreAssembly_SomeTestsFail")
{
new PackageTest (1, "SingleAssembly_AllTestsPass")
{
Description = "Project with one assembly, all tests pass",
Arguments = "../../PassingAssembly.nunit",
ExpectedResult = new ExpectedResult("Passed") {
Total = 4, Passed = 4, Failed = 0, Warnings = 0, Inconclusive = 0, Skipped = 0,
Assemblies = new[] { new ExpectedAssemblyResult("test-lib-1.dll", "net-4.6.2") } }
},

new PackageTest (1, "SingleAssembly_SomeTestsFail")
{
Description = "Project with one assembly, some failures",
Arguments = "../../FailingAssembly.nunit",
ExpectedResult = new ExpectedResult("Failed") {
Total = 9, Passed = 4, Failed = 2, Warnings = 0, Inconclusive = 1, Skipped = 2,
Assemblies = new[] { new ExpectedAssemblyResult("test-lib-2.dll", "net-4.6.2") } }
},

new PackageTest (1, "BothAssembliesTogether")
{
Description = "Project with both assemblies",
Arguments = "../../BothAssemblies.nunit",
ExpectedResult = new ExpectedResult("Failed") {
Total = 13, Passed = 8, Failed = 2, Warnings = 0, Inconclusive = 1, Skipped = 2,
Assemblies = new[] {
new ExpectedAssemblyResult("test-lib-1.dll", "net-4.6.2"),
new ExpectedAssemblyResult("test-lib-2.dll", "net-4.6.2") } }
},

new PackageTest (1, "SingleNetCoreAssembly_AllTestsPass")
{
Description = "Project with one .NET Core assembly, all tests pass",
Arguments = "../../PassingAssemblyNetCore.nunit",
ExpectedResult = new ExpectedResult("Passed") {
Total = 4, Passed = 4, Failed = 0, Warnings = 0, Inconclusive = 0, Skipped = 0,
Assemblies = new[] { new ExpectedAssemblyResult("test-lib-1.dll", "netcore-6.0") } }
//TestRunners = new IPackageTestRunner[] { (IPackageTestRunner)new NUnit3NetCoreConsoleRunner("3.19.2") }
},

new PackageTest (1, "SingleNetCoreAssembly_SomeTestsFail")
{
Description = "Project with one .NET Core assembly, some failures",
Arguments = "../../FailingAssemblyNetCore.nunit",
ExpectedResult = new ExpectedResult("Failed") {
Total = 9, Passed = 4, Failed = 2, Warnings = 0, Inconclusive = 1, Skipped = 2,
Assemblies = new[] { new ExpectedAssemblyResult("test-lib-2.dll", "netcore-6.0") } }
//TestRunners = new IPackageTestRunner[] { (IPackageTestRunner)new NUnit3NetCoreConsoleRunner("3.19.2") }
},

new PackageTest (1, "BothNetCoreAssembliesTogether")
{
Description = "Project with both .NET Core assemblies",
Arguments = "../../BothAssembliesNetCore.nunit",
ExpectedResult = new ExpectedResult("Failed") {
Total = 13, Passed = 8, Failed = 2, Warnings = 0, Inconclusive = 1, Skipped = 2,
Assemblies = new[] {
new ExpectedAssemblyResult("test-lib-1.dll", "netcore-6.0"),
new ExpectedAssemblyResult("test-lib-2.dll", "netcore-6.0") } }
//TestRunners = new IPackageTestRunner[] { (IPackageTestRunner)new NUnit3NetCoreConsoleRunner("3.19.2") }
}
Description = "Project with one .NET Core assembly, some failures",
Arguments = "../../FailingAssemblyNetCore.nunit",
ExpectedResult = new ExpectedResult("Failed") {
Total = 9, Passed = 4, Failed = 2, Warnings = 0, Inconclusive = 1, Skipped = 2,
Assemblies = new[] { new ExpectedAssemblyResult("test-lib-2.dll", "netcore-6.0") } },
TestRunners = AllRunners
};

var BothNetCoreAssembliesTogether = new PackageTest (1, "BothNetCoreAssembliesTogether")
{
Description = "Project with both .NET Core assemblies",
Arguments = "../../BothAssembliesNetCore.nunit",
ExpectedResult = new ExpectedResult("Failed") {
Total = 13, Passed = 8, Failed = 2, Warnings = 0, Inconclusive = 1, Skipped = 2,
Assemblies = new[] {
new ExpectedAssemblyResult("test-lib-1.dll", "netcore-6.0"),
new ExpectedAssemblyResult("test-lib-2.dll", "netcore-6.0") } },
TestRunners = AllRunners
};

var AllTests = new PackageTest[] {
SingleAssembly_AllTestsPass,
SingleAssembly_SomeTestsFail,
BothAssembliesTogether,
SingleNetCoreAssembly_AllTestsPass,
SingleNetCoreAssembly_SomeTestsFail,
BothNetCoreAssembliesTogether
};

//////////////////////////////////////////////////////////////////////
Expand All @@ -111,15 +133,8 @@ BuildSettings.Packages.Add(
HasDirectory("tools").WithFile("nunit-project-loader.legacy.addins"),
HasDirectory("tools/net462").WithFiles("nunit-project-loader.dll", "nunit.engine.api.dll"),
HasDirectory("tools/net6.0").WithFiles("nunit-project-loader.dll", "nunit.engine.api.dll") },
tests: PackageTests,
testRunners: new IPackageTestRunner[] {
new NUnitConsoleRunner("3.19.2"),
new NUnitConsoleRunner("3.18.3"),
new NUnitConsoleRunner("3.17.0"),
new NUnitConsoleRunner("3.15.5")
//new NUnit3NetCoreConsoleRunner("3.19.2"),
//new NUnit3NetCoreConsoleRunner("3.18.3"),
}
tests: AllTests,
testRunners: StandardRunners
));

//////////////////////////////////////////////////////////////////////
Expand All @@ -134,15 +149,8 @@ BuildSettings.Packages.Add(
HasDirectory("tools").WithFiles("LICENSE.txt", "VERIFICATION.txt", "nunit-project-loader.legacy.addins"),
HasDirectory("tools/net462").WithFiles("nunit-project-loader.dll", "nunit.engine.api.dll"),
HasDirectory("tools/net6.0").WithFiles("nunit-project-loader.dll", "nunit.engine.api.dll") },
tests: PackageTests,
testRunners: new IPackageTestRunner[] {
//new NUnitConsoleRunner("3.19.2"),
new NUnitConsoleRunner("3.18.3"),
new NUnitConsoleRunner("3.17.0"),
new NUnitConsoleRunner("3.15.5")
//new NUnit3NetCoreConsoleRunner("3.19.2"),
//new NUnit3NetCoreConsoleRunner("3.18.3"),
}
tests: AllTests,
testRunners: StandardRunners
));

//////////////////////////////////////////////////////////////////////
Expand Down
5 changes: 3 additions & 2 deletions nunit-project-loader.sln
Original file line number Diff line number Diff line change
Expand Up @@ -9,19 +9,20 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "nunit-project-loader.tests"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{3B28CF0C-D613-4971-9D8F-00C960C656E2}"
ProjectSection(SolutionItems) = preProject
.travis.yml = .travis.yml
appveyor.yml = appveyor.yml
BothAssemblies.nunit = BothAssemblies.nunit
BothAssembliesNetCore.nunit = BothAssembliesNetCore.nunit
build.cake = build.cake
build.ps1 = build.ps1
build.sh = build.sh
FailingAssembly.nunit = FailingAssembly.nunit
FailingAssemblyNetCore.nunit = FailingAssemblyNetCore.nunit
GitReleaseManager.yaml = GitReleaseManager.yaml
GitVersion.yml = GitVersion.yml
LICENSE.txt = LICENSE.txt
nunit-project-loader.addins = nunit-project-loader.addins
nunit-project-loader.nuspec = nunit-project-loader.nuspec
PassingAssembly.nunit = PassingAssembly.nunit
PassingAssemblyNetCore.nunit = PassingAssemblyNetCore.nunit
README.md = README.md
EndProjectSection
EndProject
Expand Down
Loading