From 4ba79af56cacd1067792949e3b4fb71dbf3943eb Mon Sep 17 00:00:00 2001 From: Rob Prouse Date: Sun, 7 May 2017 16:25:22 -0400 Subject: [PATCH 1/3] Fix compiling the .NET 2.0 version of Mock Assembly in VS2017 --- src/NUnitEngine/mock-assembly/mock-assembly.csproj | 1 + src/NUnitEngine/mock-assembly/mock-assembly.project.json | 8 ++++++++ 2 files changed, 9 insertions(+) create mode 100644 src/NUnitEngine/mock-assembly/mock-assembly.project.json diff --git a/src/NUnitEngine/mock-assembly/mock-assembly.csproj b/src/NUnitEngine/mock-assembly/mock-assembly.csproj index b0f79d84e..1580bc79d 100644 --- a/src/NUnitEngine/mock-assembly/mock-assembly.csproj +++ b/src/NUnitEngine/mock-assembly/mock-assembly.csproj @@ -103,6 +103,7 @@ nunit.snk + diff --git a/src/NUnitEngine/mock-assembly/mock-assembly.project.json b/src/NUnitEngine/mock-assembly/mock-assembly.project.json new file mode 100644 index 000000000..15b9e4303 --- /dev/null +++ b/src/NUnitEngine/mock-assembly/mock-assembly.project.json @@ -0,0 +1,8 @@ +{ + "runtimes": { + "win": {} + }, + "frameworks": { + "net20": {} + } +} \ No newline at end of file From e36e6166022970ca438e1fbb165c11605e98b637 Mon Sep 17 00:00:00 2001 From: Rob Prouse Date: Mon, 8 May 2017 20:29:15 -0400 Subject: [PATCH 2/3] Added the docker support that was added to the nunit repo --- BUILDING.md | 17 +++++++++++++++++ build-mono-docker.ps1 | 7 +++++++ 2 files changed, 24 insertions(+) create mode 100644 build-mono-docker.ps1 diff --git a/BUILDING.md b/BUILDING.md index e6b081bbe..dbcab726d 100644 --- a/BUILDING.md +++ b/BUILDING.md @@ -9,6 +9,7 @@ Note that assemblies in one layer must not reference those in any other layer, e Developers should make sure not to introduce any other references. There are two ways to build NUnit: using the solution file in an IDE or through the build script. +See also [Building and testing for Linux on a Windows machine](#building-and-testing-for-linux-on-a-windows-machine). ## Solution Build @@ -61,3 +62,19 @@ For a full list of tasks, run `build.cmd -ShowDescription`. you have to be very careful that the build is up to date before packaging. 2. For additional targets, refer to the build.cake script itself. + +### Building and testing for Linux on a Windows machine + +Most of the time, it's not necessary to build or run tests on platforms other than your primary +platform. The continuous integration which runs on every PR is enough to catch any problems. + +Once in a while you may find it desirable to be primarily developing the repository on a Windows +machine but to run Linux tests on the same set of files while you edit them in Windows. +One convenient way to do this is to pass the same arguments to [build-mono-docker.ps1](.\build-mono-docker.ps1) that you would pass to build.ps1. It requires +[Docker](https://docs.docker.com/docker-for-windows/install/) to be installed. + +For example, to build and test everything: `.\build-mono-docker.ps1 -t test` + +This will run a temporary container using the latest +[Mono image](https://hub.docker.com/r/library/mono/), mounting the repo inside the container +and executing the [build.sh](build.sh) Cake bootstrapper with the arguments you specify. diff --git a/build-mono-docker.ps1 b/build-mono-docker.ps1 new file mode 100644 index 000000000..a57a3a4d8 --- /dev/null +++ b/build-mono-docker.ps1 @@ -0,0 +1,7 @@ +trap [Management.Automation.CommandNotFoundException] { + Write-Error 'Docker cannot be found. Make sure it is installed and added to the path.' + Start-Process -FilePath 'https://docs.docker.com/docker-for-windows/install/' + continue; +} + +docker run --rm -it -v ${PSScriptRoot}:/nunit-console -w=/nunit-console mono:4.2.4 bash build.sh $args \ No newline at end of file From f4d9d2e77552924e01328a42fe37b3ecdf12e4d8 Mon Sep 17 00:00:00 2001 From: Rob Prouse Date: Mon, 8 May 2017 21:38:58 -0400 Subject: [PATCH 3/3] Moved the .NET Standard mock-assembly project to its own directory --- NUnit.Engine.Netstandard.sln | 2 +- .../mock-assembly.netstandard.csproj | 2 ++ src/NUnitEngine/mock-assembly/mock-assembly.csproj | 1 - src/NUnitEngine/mock-assembly/mock-assembly.project.json | 8 -------- .../nunit.engine.tests.netstandard.csproj | 2 +- 5 files changed, 4 insertions(+), 11 deletions(-) rename src/NUnitEngine/{mock-assembly => mock-assembly.netstandard}/mock-assembly.netstandard.csproj (83%) delete mode 100644 src/NUnitEngine/mock-assembly/mock-assembly.project.json diff --git a/NUnit.Engine.Netstandard.sln b/NUnit.Engine.Netstandard.sln index f45cb3632..b88d2b26f 100644 --- a/NUnit.Engine.Netstandard.sln +++ b/NUnit.Engine.Netstandard.sln @@ -23,7 +23,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "nunit.engine.tests.netstandard", "src\NUnitEngine\nunit.engine.tests.netstandard\nunit.engine.tests.netstandard.csproj", "{BC22F0E4-0862-4F82-A912-C9A447FECBAD}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "mock-assembly.netstandard", "src\NUnitEngine\mock-assembly\mock-assembly.netstandard.csproj", "{BC6C8155-2024-4F58-A006-18A15EA22A5C}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "mock-assembly.netstandard", "src\NUnitEngine\mock-assembly.netstandard\mock-assembly.netstandard.csproj", "{BC6C8155-2024-4F58-A006-18A15EA22A5C}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "nunit.engine.netstandard", "src\NUnitEngine\nunit.engine.netstandard\nunit.engine.netstandard.csproj", "{C26FFC46-60CE-4CBA-87BD-8E9B972C0E0D}" EndProject diff --git a/src/NUnitEngine/mock-assembly/mock-assembly.netstandard.csproj b/src/NUnitEngine/mock-assembly.netstandard/mock-assembly.netstandard.csproj similarity index 83% rename from src/NUnitEngine/mock-assembly/mock-assembly.netstandard.csproj rename to src/NUnitEngine/mock-assembly.netstandard/mock-assembly.netstandard.csproj index d5c579962..20ab31c9d 100644 --- a/src/NUnitEngine/mock-assembly/mock-assembly.netstandard.csproj +++ b/src/NUnitEngine/mock-assembly.netstandard/mock-assembly.netstandard.csproj @@ -15,6 +15,8 @@ + + diff --git a/src/NUnitEngine/mock-assembly/mock-assembly.csproj b/src/NUnitEngine/mock-assembly/mock-assembly.csproj index 1580bc79d..b0f79d84e 100644 --- a/src/NUnitEngine/mock-assembly/mock-assembly.csproj +++ b/src/NUnitEngine/mock-assembly/mock-assembly.csproj @@ -103,7 +103,6 @@ nunit.snk - diff --git a/src/NUnitEngine/mock-assembly/mock-assembly.project.json b/src/NUnitEngine/mock-assembly/mock-assembly.project.json deleted file mode 100644 index 15b9e4303..000000000 --- a/src/NUnitEngine/mock-assembly/mock-assembly.project.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "runtimes": { - "win": {} - }, - "frameworks": { - "net20": {} - } -} \ No newline at end of file diff --git a/src/NUnitEngine/nunit.engine.tests.netstandard/nunit.engine.tests.netstandard.csproj b/src/NUnitEngine/nunit.engine.tests.netstandard/nunit.engine.tests.netstandard.csproj index 12663a49c..db2aa9a69 100644 --- a/src/NUnitEngine/nunit.engine.tests.netstandard/nunit.engine.tests.netstandard.csproj +++ b/src/NUnitEngine/nunit.engine.tests.netstandard/nunit.engine.tests.netstandard.csproj @@ -42,7 +42,7 @@ - +