diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json
index 9fcc910342..33349ba3b7 100644
--- a/.config/dotnet-tools.json
+++ b/.config/dotnet-tools.json
@@ -3,7 +3,7 @@
"isRoot": true,
"tools": {
"cake.tool": {
- "version": "1.1.0",
+ "version": "3.0.0",
"commands": [
"dotnet-cake"
]
@@ -13,6 +13,12 @@
"commands": [
"SignClient"
]
+ },
+ "coverlet.console": {
+ "version": "3.2.0",
+ "commands": [
+ "coverlet"
+ ]
}
}
}
\ No newline at end of file
diff --git a/build.cake b/build.cake
index 6a8e9fd1b2..1064b6c326 100644
--- a/build.cake
+++ b/build.cake
@@ -1,4 +1,5 @@
#tool NUnit.ConsoleRunner&version=3.12.0
+#addin "nuget:?package=Cake.Coverlet&version=3.0.4"
//////////////////////////////////////////////////////////////////////
// ARGUMENTS
@@ -47,24 +48,24 @@ var NetCoreTests = new String[]
// DEFINE RUN CONSTANTS
//////////////////////////////////////////////////////////////////////
-var PROJECT_DIR = Context.Environment.WorkingDirectory.FullPath + "/";
-var PACKAGE_DIR = Argument("artifact-dir", PROJECT_DIR + "package") + "/";
-var BIN_DIR = PROJECT_DIR + "bin/" + configuration + "/";
-var IMAGE_DIR = PROJECT_DIR + "images/";
+var PROJECT_DIR = Directory(Context.Environment.WorkingDirectory.FullPath);
+var PACKAGE_DIR = Directory(Argument("artifact-dir", PROJECT_DIR.Path + "package"));
+var BIN_DIR = PROJECT_DIR + Directory("bin/") + Directory(configuration);
+var IMAGE_DIR = PROJECT_DIR + Directory("images/");
var SOLUTION_FILE = "./nunit.sln";
// Test Runners
-var NUNITLITE_RUNNER_DLL = "nunitlite-runner.dll";
+var NUNITLITE_RUNNER_DLL = File("nunitlite-runner.dll");
// Test Assemblies
-var FRAMEWORK_TESTS = "nunit.framework.tests.dll";
-var EXECUTABLE_NUNITLITE_TEST_RUNNER_EXE = "nunitlite-runner.exe";
-var EXECUTABLE_NUNITLITE_TESTS_EXE = "nunitlite.tests.exe";
-var EXECUTABLE_NUNITLITE_TESTS_DLL = "nunitlite.tests.dll";
+var FRAMEWORK_TESTS = File("nunit.framework.tests.dll");
+var EXECUTABLE_NUNITLITE_TEST_RUNNER_EXE = File("nunitlite-runner.exe");
+var EXECUTABLE_NUNITLITE_TESTS_EXE = File("nunitlite.tests.exe");
+var EXECUTABLE_NUNITLITE_TESTS_DLL = File("nunitlite.tests.dll");
// Packages
-var ZIP_PACKAGE = PACKAGE_DIR + "NUnit.Framework-" + packageVersion + ".zip";
+var ZIP_PACKAGE = PACKAGE_DIR + File("NUnit.Framework-" + packageVersion + ".zip");
///////////////////////////////////////////////////////////////////////////////
// SETUP / TEARDOWN
@@ -134,7 +135,7 @@ Task("NuGetRestore")
.Description("Restores NuGet Packages")
.Does(() =>
{
- DotNetCoreRestore(SOLUTION_FILE);
+ DotNetRestore(SOLUTION_FILE);
});
//////////////////////////////////////////////////////////////////////
@@ -146,15 +147,15 @@ Task("Build")
.IsDependentOn("NuGetRestore")
.Does(() =>
{
- DotNetCoreBuild(SOLUTION_FILE, CreateDotNetCoreBuildSettings());
+ DotNetBuild(SOLUTION_FILE, CreateDotNetBuildSettings());
});
-DotNetCoreBuildSettings CreateDotNetCoreBuildSettings() =>
- new DotNetCoreBuildSettings
+DotNetBuildSettings CreateDotNetBuildSettings() =>
+ new DotNetBuildSettings
{
Configuration = configuration,
NoRestore = true,
- Verbosity = DotNetCoreVerbosity.Minimal
+ Verbosity = DotNetVerbosity.Minimal
};
//////////////////////////////////////////////////////////////////////
@@ -172,10 +173,25 @@ Task("TestNetFramework")
.Does(() =>
{
var runtime = "net462";
- var dir = BIN_DIR + runtime + "/";
- RunTest(dir + EXECUTABLE_NUNITLITE_TEST_RUNNER_EXE, dir, FRAMEWORK_TESTS, dir + "nunit.framework.tests.xml", runtime, ref ErrorDetail);
+ var dir = BIN_DIR + Directory(runtime);
+
+ // TODO: Extract
+ var coverletSettings = new CoverletSettings {
+ CollectCoverage = true,
+ CoverletOutputFormat = CoverletOutputFormat.opencover,
+ CoverletOutputDirectory = Directory(@".\coverage-results\"),
+ CoverletOutputName = $"results-{runtime}_{DateTime.UtcNow:dd-MM-yyyy-HH-mm-ss-FFF}"
+ };
+
+ var testSettings = new DotNetTestSettings { };
+ DotNetTest(dir.Path.FullPath, testSettings, coverletSettings);
+
+
+ RunTest(dir + EXECUTABLE_NUNITLITE_TEST_RUNNER_EXE, dir, FRAMEWORK_TESTS, dir + File("nunit.framework.tests.xml"), runtime, ref ErrorDetail);
//RunNUnitTests(dir, FRAMEWORK_TESTS, runtime, ref ErrorDetail);
RunTest(dir + EXECUTABLE_NUNITLITE_TESTS_EXE, dir, runtime, ref ErrorDetail);
+
+
PublishTestResults(runtime);
});
@@ -191,9 +207,24 @@ foreach (var runtime in NetCoreTests)
.OnError(exception => { ErrorDetail.Add(exception.Message); })
.Does(() =>
{
- var dir = BIN_DIR + runtime + "/";
+ var dir = BIN_DIR + Directory(runtime);
+
+ var coverletSettings = new CoverletSettings {
+ CollectCoverage = true,
+ CoverletOutputFormat = CoverletOutputFormat.opencover,
+ CoverletOutputDirectory = Directory(@".\coverage-results\"),
+ CoverletOutputName = $"results-netstandard20_{runtime}_{DateTime.UtcNow:dd-MM-yyyy-HH-mm-ss-FFF}"
+ };
+
+ var testSettings = new DotNetTestSettings { };
+
+ DotNetTest(dir.Path.FullPath, testSettings, coverletSettings);
+
RunDotnetCoreTests(dir + NUNITLITE_RUNNER_DLL, dir, FRAMEWORK_TESTS, runtime, GetResultXmlPath(FRAMEWORK_TESTS, runtime), ref ErrorDetail);
RunDotnetCoreTests(dir + EXECUTABLE_NUNITLITE_TESTS_DLL, dir, runtime, ref ErrorDetail);
+
+ // TODO: Extract
+
PublishTestResults(runtime);
});
@@ -214,30 +245,30 @@ var RootFiles = new FilePath[]
// Not all of these are present in every framework
// The Microsoft and System assemblies are part of the BCL
// used by the .NET 4.0 framework. 4.0 tests will not run without them.
-var FrameworkFiles = new FilePath[]
+var FrameworkFiles = new ConvertableFilePath[]
{
- "mock-assembly.dll",
- "mock-assembly.exe",
- "nunit.framework.dll",
- "nunit.framework.pdb",
- "nunit.framework.xml",
- "nunit.framework.tests.dll",
- "nunit.testdata.dll",
- "nunitlite.dll",
- "nunitlite.pdb",
- "nunitlite.tests.exe",
- "nunitlite.tests.dll",
- "slow-nunit-tests.dll",
- "nunitlite-runner.exe",
- "nunitlite-runner.pdb",
- "nunitlite-runner.dll",
- "Microsoft.Threading.Tasks.dll",
- "Microsoft.Threading.Tasks.Extensions.Desktop.dll",
- "Microsoft.Threading.Tasks.Extensions.dll",
- "System.IO.dll",
- "System.Runtime.dll",
- "System.Threading.Tasks.dll",
- "System.ValueTuple.dll"
+ File("mock-assembly.dll"),
+ File("mock-assembly.exe"),
+ File("nunit.framework.dll"),
+ File("nunit.framework.pdb"),
+ File("nunit.framework.xml"),
+ File("nunit.framework.tests.dll"),
+ File("nunit.testdata.dll"),
+ File("nunitlite.dll"),
+ File("nunitlite.pdb"),
+ File("nunitlite.tests.exe"),
+ File("nunitlite.tests.dll"),
+ File("slow-nunit-tests.dll"),
+ File("nunitlite-runner.exe"),
+ File("nunitlite-runner.pdb"),
+ File("nunitlite-runner.dll"),
+ File("Microsoft.Threading.Tasks.dll"),
+ File("Microsoft.Threading.Tasks.Extensions.Desktop.dll"),
+ File("Microsoft.Threading.Tasks.Extensions.dll"),
+ File("System.IO.dll"),
+ File("System.Runtime.dll"),
+ File("System.Threading.Tasks.dll"),
+ File("System.ValueTuple.dll")
};
string CurrentImageDir => $"{IMAGE_DIR}NUnit-{packageVersion}/";
@@ -257,15 +288,15 @@ Task("CreateImage")
foreach (var runtime in LibraryFrameworks)
{
var targetDir = imageBinDir + Directory(runtime);
- var sourceDir = BIN_DIR + Directory(runtime);
+ var sourceDir = Directory(BIN_DIR) + Directory(runtime);
CreateDirectory(targetDir);
- foreach (FilePath file in FrameworkFiles)
+ foreach (ConvertableFilePath file in FrameworkFiles)
{
- var sourcePath = sourceDir + "/" + file;
+ var sourcePath = Directory(sourceDir) + File(file);
if (FileExists(sourcePath))
CopyFileToDirectory(sourcePath, targetDir);
}
- var schemaPath = sourceDir + "/Schemas";
+ var schemaPath = sourceDir + Directory("/Schemas");
if (DirectoryExists(schemaPath))
CopyDirectory(sourceDir, targetDir);
}
diff --git a/src/NUnitFramework/nunitlite.tests/nunitlite.tests.csproj b/src/NUnitFramework/nunitlite.tests/nunitlite.tests.csproj
index 2abb1a2917..1f6529edba 100644
--- a/src/NUnitFramework/nunitlite.tests/nunitlite.tests.csproj
+++ b/src/NUnitFramework/nunitlite.tests/nunitlite.tests.csproj
@@ -12,6 +12,10 @@
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
@@ -29,4 +33,16 @@
+
+
+ 3.0.4
+
+
+
+
+
+ 3.0.4
+
+
+
diff --git a/src/NUnitFramework/slow-tests/slow-nunit-tests.csproj b/src/NUnitFramework/slow-tests/slow-nunit-tests.csproj
index e5cb70ab07..aac42e971c 100644
--- a/src/NUnitFramework/slow-tests/slow-nunit-tests.csproj
+++ b/src/NUnitFramework/slow-tests/slow-nunit-tests.csproj
@@ -14,7 +14,23 @@
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+
+ 3.0.4
+
+
+
+
+
+ 3.0.4
+
+
+
diff --git a/src/NUnitFramework/tests/nunit.framework.tests.csproj b/src/NUnitFramework/tests/nunit.framework.tests.csproj
index eee1b460ef..363aa8036b 100644
--- a/src/NUnitFramework/tests/nunit.framework.tests.csproj
+++ b/src/NUnitFramework/tests/nunit.framework.tests.csproj
@@ -10,6 +10,10 @@
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
@@ -47,4 +51,16 @@
+
+
+
+ 3.0.4
+
+
+
+
+
+ 3.0.4
+
+