From 25d728acc5cb86f19261dc2dfcc6ba24a1d67a9e Mon Sep 17 00:00:00 2001 From: Jonas Nyrup Date: Thu, 28 Oct 2021 20:57:29 +0200 Subject: [PATCH] Fix building FA on linux/WSL --- Build/Build.cs | 41 ++++++++++++------- .../MSTestV2.Specs/MSTestV2.Specs.csproj | 2 +- .../MSpec.Specs/MSpec.Specs.csproj | 2 +- .../NUnit3.Specs/NUnit3.Specs.csproj | 2 +- .../XUnit2.Specs/XUnit2.Specs.csproj | 2 +- build.sh | 2 +- 6 files changed, 32 insertions(+), 19 deletions(-) diff --git a/Build/Build.cs b/Build/Build.cs index a523146572..29b8e4ee15 100644 --- a/Build/Build.cs +++ b/Build/Build.cs @@ -76,11 +76,14 @@ class Build : NukeBuild .DependsOn(Compile) .Executes(() => { - Xunit2(s => s - .SetFramework("net47") - .AddTargetAssemblies(GlobFiles( - Solution.Specs.FluentAssertions_Specs.Directory, - "bin/Debug/net47/*.Specs.dll").NotEmpty())); + if (EnvironmentInfo.IsWin) + { + Xunit2(s => s + .SetFramework("net47") + .AddTargetAssemblies(GlobFiles( + Solution.Specs.FluentAssertions_Specs.Directory, + "bin/Debug/net47/*.Specs.dll").NotEmpty())); + } DotNetTest(s => s .SetProjectFile(Solution.Specs.FluentAssertions_Specs) @@ -95,20 +98,30 @@ class Build : NukeBuild .DependsOn(Compile) .Executes(() => { + var testCombinations = + from project in new[] + { + Solution.TestFrameworks.MSpec_Specs, + Solution.TestFrameworks.MSTestV2_Specs, + Solution.TestFrameworks.NUnit3_Specs, + Solution.TestFrameworks.XUnit2_Specs + } + let frameworks = project.GetTargetFrameworks() + let supportedFrameworks = EnvironmentInfo.IsWin ? frameworks : frameworks.Except(new[] { "net47" }) + from framework in supportedFrameworks + select new { project, framework }; + DotNetTest(s => s .SetConfiguration("Debug") .EnableNoBuild() .CombineWith( - new[] - { - Solution.TestFrameworks.MSpec_Specs, - Solution.TestFrameworks.MSTestV2_Specs, - Solution.TestFrameworks.NUnit3_Specs, - Solution.TestFrameworks.XUnit2_Specs - }, - (_, v) => _.SetProjectFile(v))); + testCombinations, + (_, v) => _.SetProjectFile(v.project).SetFramework(v.framework))); - NSpec3(Solution.TestFrameworks.NSpec3_Net47_Specs.Directory / "bin" / "Debug" / "net47" / "NSpec3.Specs.dll"); + if (EnvironmentInfo.IsWin) + { + NSpec3(Solution.TestFrameworks.NSpec3_Net47_Specs.Directory / "bin" / "Debug" / "net47" / "NSpec3.Specs.dll"); + } }); Target Pack => _ => _ diff --git a/Tests/TestFrameworks/MSTestV2.Specs/MSTestV2.Specs.csproj b/Tests/TestFrameworks/MSTestV2.Specs/MSTestV2.Specs.csproj index d2374ab93b..d60bf9ca56 100644 --- a/Tests/TestFrameworks/MSTestV2.Specs/MSTestV2.Specs.csproj +++ b/Tests/TestFrameworks/MSTestV2.Specs/MSTestV2.Specs.csproj @@ -1,6 +1,6 @@  - netcoreapp2.1 + net5.0 MSTestV2.Specs MSTestV2.Specs ..\..\..\TestRules.ruleset diff --git a/Tests/TestFrameworks/MSpec.Specs/MSpec.Specs.csproj b/Tests/TestFrameworks/MSpec.Specs/MSpec.Specs.csproj index 7ffdb8cd3b..b826bbc1f0 100644 --- a/Tests/TestFrameworks/MSpec.Specs/MSpec.Specs.csproj +++ b/Tests/TestFrameworks/MSpec.Specs/MSpec.Specs.csproj @@ -1,6 +1,6 @@  - netcoreapp2.1 + net5.0 MSpec.Specs MSpec.Specs Rules.ruleset diff --git a/Tests/TestFrameworks/NUnit3.Specs/NUnit3.Specs.csproj b/Tests/TestFrameworks/NUnit3.Specs/NUnit3.Specs.csproj index cb12710ce5..4403e37741 100644 --- a/Tests/TestFrameworks/NUnit3.Specs/NUnit3.Specs.csproj +++ b/Tests/TestFrameworks/NUnit3.Specs/NUnit3.Specs.csproj @@ -1,6 +1,6 @@  - netcoreapp2.1 + net5.0 NUnit3.Specs NUnit3.Specs ..\..\..\TestRules.ruleset diff --git a/Tests/TestFrameworks/XUnit2.Specs/XUnit2.Specs.csproj b/Tests/TestFrameworks/XUnit2.Specs/XUnit2.Specs.csproj index a63c9f07e9..98ff65410f 100644 --- a/Tests/TestFrameworks/XUnit2.Specs/XUnit2.Specs.csproj +++ b/Tests/TestFrameworks/XUnit2.Specs/XUnit2.Specs.csproj @@ -1,6 +1,6 @@  - net47;netcoreapp2.1 + net47;net5.0 XUnit2.Specs XUnit2.Specs ..\..\..\TestRules.ruleset diff --git a/build.sh b/build.sh index d287496012..435dac52bc 100755 --- a/build.sh +++ b/build.sh @@ -9,7 +9,7 @@ SCRIPT_DIR=$(cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd) # CONFIGURATION ########################################################################### -BUILD_PROJECT_FILE="$SCRIPT_DIR/build/_build.csproj" +BUILD_PROJECT_FILE="$SCRIPT_DIR/Build/_build.csproj" TEMP_DIRECTORY="$SCRIPT_DIR//.nuke/temp" DOTNET_GLOBAL_FILE="$SCRIPT_DIR//global.json"