Closed mu88 closed 6 months ago
hi do you have a (.Net) SDK installed on this machine ? Stryker needs a complete build environment to run. For some reason, dotnet build solution.sln failed so Stryker tried to use MsBuild instead. But it failed to find any instance of it, so it simply failed. I am not use Stryker invokes MsBuild properly on Linux; this logic was intended for old Desktop framework/net classic (or whatever it is called these days). The main question is why dotnet build failed. Sadly, Stryker does not currently provide details for this step
Thx for your reply.
Yes, the .NET SDK is installed on this machine. If that wouldn't be the case, it should already fail on the very first run (i. e. project-a
), shouldn't it?
I am not sure single project would fail: they could pass if they are light enough. I just updated my PR to improve on logging for such a situation and use 'dotnet msbuild' on Linux (instead of MsBuild.Exe). It will at least provide details on why dotnet build fails. Could try running dotnet build on the solution and see what happens?
That was a good guess, man 💪🏻 running dotnet build ProjectD.sln
fails with the following error:
/usr/share/dotnet/sdk/8.0.300/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(90,5): error NETSDK1100: To build a project targeting Windows on this operating system, set the EnableWindowsTargeting property to true. [/home/jenkins/agent/workspace/s_Utility_MutationTesting_master/project-d/src/ProjectD.TestApp/Company.ProjectD.TestApp.csproj]
When changing this to dotnet build ProjectD.sln -p:EnableWindowsTargeting=true
, the build succeeds. So the question is: can I somehow pass the MSBuild argument EnableWindowsTargeting
to Stryker or do I have to set it in the corresponding Company.ProjectD.TestApp.csproj
?
Thanks, but that's not a guess, it was logged.
09:07:41 [07:07:41 INF] Building solution Company.ProjectD.sln
09:07:43 [07:07:42 WRN] Dotnet build failed, trying with MsBuild.
As of today, there is no way to pass MsBuild properties across Stryker, but you can add the properties in windows targeting projects' csproj files:
<PropertyGroup>
<EnableWindowsTargeting>true</EnableWindowsTargeting>
</PropertyGroup>
I think it should do the trick
You can probably set this with a condition Condition=" '$(OS)' != 'Windows_NT' "
so it's only set on non-windows operating systems. See: https://stackoverflow.com/questions/43499222/how-to-get-the-current-operating-system-in-msbuild
Thx, I will give it a try and report back
I tried it yesterday multiple times with enabling EnableWindowsTargeting
and confirmed that this works. So first of all thank you for your help 💪🏻
However, what I don't understand is the following: I'm using a Stryker config file like this:
{
"stryker-config": {
"test-case-filter": "Category=Unit",
"project": "Company.ProjectD.Features",
"test-projects": ["tests/Company.ProjectD.Tests.Component/Company.ProjectD.Tests.Component.csproj"]
}
}
According to the docs, I'm not using Stryker's solution file context, but yet the solution is built by Stryker. When only running dotnet build tests/Company.ProjectD.Tests.Component/Company.ProjectD.Tests.Component.csproj
, the necessary projects are built successfully on the Linux host without adding EnableWindowsTargeting
. This somehow contradicts what the docs are implying 🤔
When you run from a folder containing a solution file, you run in solution mode. Since you're specifying a relative path to your test project and are setting a project name, it does indeed look like you're running in solution mode. The pipeline also makes it seem like you're running in solution mode since you seem to set the working directory to the repository root: dir("${repositoryName}")
.
So I have to explicitly dir
out of the Solution directory to force Stryker into the solution mode, got it. Thx for the clarification 👍🏻
So I have to explicitly
dir
out of the Solution directory to force Stryker into the solution mode, got it. Thx for the clarification 👍🏻
The primary way stryker determines the execution mode is based on the information available (do we have a solution file, do we have a project file, do we have a test project file). This information can be provided using config but stryker also tries to auto-detect this based on the current working directory. If the current working directory contains a solution file, we automatically run in solution mode. If the current working directory contains a project file we try to determine whether or not this is a test project. If it is a test project, we run in test project mode. Otherwise we run in source project mode. If no solution file or project file is found in the working directory we base the mode to use solely on the configuration provided by the user.
Describe the bug
We're running Stryker every night on Jenkins for several of our projects. After a couple of successful runs, Stryker crashes with
System.IO.FileNotFoundException: MsBuild.exe could not be located
.Logs
Uncollapse me for logs
```text Running on organization-utility-mutationtesting-master-960-m0lcj-rjz9-vkqdj in /home/jenkins/agent/workspace/s_Utility_MutationTesting_master [Pipeline] { [Pipeline] stage [Pipeline] { (Declarative: Checkout SCM) [Pipeline] checkout The recommended git tool is: NONE using credential dd2405d7-ae48-42cb-a573-c3569b29cbf1 Cloning the remote Git repository Cloning with configured refspecs honoured and without tags Cloning repository https://git.company.com/scm/organization/tools.git > git init /home/jenkins/agent/workspace/s_Utility_MutationTesting_master # timeout=10 Fetching upstream changes from https://git.company.com/scm/organization/tools.git > git --version # timeout=10 > git --version # 'git version 2.39.2' using GIT_ASKPASS to set credentials git user > git fetch --no-tags --force --progress -- https://git.company.com/scm/organization/tools.git +refs/heads/master:refs/remotes/origin/master # timeout=10 Avoid second fetch Checking out Revision ee4c28776db9c1c9cb993fbe3aef6ff0141cf6c5 (master) > git config remote.origin.url https://git.company.com/scm/organization/tools.git # timeout=10 > git config --add remote.origin.fetch +refs/heads/master:refs/remotes/origin/master # timeout=10 > git config core.sparsecheckout # timeout=10 > git checkout -f ee4c28776db9c1c9cb993fbe3aef6ff0141cf6c5 # timeout=10 Commit message: "config: PZS-10446 add mdrb to mutation testing" > git rev-list --no-walk ee4c28776db9c1c9cb993fbe3aef6ff0141cf6c5 # timeout=10 [Pipeline] } [Pipeline] // stage [Pipeline] withEnv [Pipeline] { [Pipeline] container [Pipeline] { [Pipeline] sh + /sbin/ip route + awk /default/ { print $3} /home/jenkins/agent/workspace/s_Utility_MutationTesting_master@tmp/durable-c87035f7/script.sh.copy: 1: /sbin/ip: not found [Pipeline] withEnv [Pipeline] { [Pipeline] ansiColor [Pipeline] { [Pipeline] timestamps [Pipeline] { [Pipeline] timeout 08:32:19 Timeout set to expire in 6 hr 0 min [Pipeline] { [Pipeline] stage [Pipeline] { (Prepare workspace) [Pipeline] script [Pipeline] // script [Pipeline] } [Pipeline] // stage [Pipeline] stage [Pipeline] { (Configure NuGet sources) [Pipeline] script [Pipeline] { [Pipeline] sh 08:32:20 + dotnet nuget remove source nuget.org 08:32:21 Package source with Name: nuget.org removed successfully. 08:32:21 + dotnet nuget add source https://artifactory.tools.company.com/artifactory/api/nuget/nuget-virtual 08:32:21 Package source with Name: Package source 1 added successfully. [Pipeline] } [Pipeline] // script [Pipeline] } [Pipeline] // stage [Pipeline] stage [Pipeline] { (Run mutation testing) [Pipeline] script [Pipeline] { [Pipeline] echo 08:32:21 run project-a [Pipeline] withCredentials 08:32:21 Masking supported pattern matches of $GIT_PASS [Pipeline] { [Pipeline] sh 08:32:22 + git clone https://****:****@git.company.com/scm/organization/project-a.git 08:32:22 Cloning into 'project-a'... [Pipeline] dir 08:32:24 Running in /home/jenkins/agent/workspace/s_Utility_MutationTesting_master/project-a [Pipeline] { [Pipeline] fileExists [Pipeline] sh 08:32:25 + export NUGET_CERT_REVOCATION_MODE=offline 08:32:25 + dotnet tool install --tool-path ./tools --add-source https://artifactory.tools.company.com/artifactory/api/nuget/nuget-virtual dotnet-stryker 08:32:27 You can invoke the tool using the following command: dotnet-stryker 08:32:27 Tool 'dotnet-stryker' (version '4.0.5') was successfully installed. [Pipeline] sh 08:32:28 + ./tools/dotnet-stryker --reporter Html --reporter cleartext --reporter json --mutation-level Complete --output StrykerOutput_ProjectA --config-file stryker-config.json 08:32:28 08:32:28 [38;5;11m _____ _ _ _ _ ______ _______ [0m 08:32:28 [38;5;11m / ____| | | | | \ | | ____|__ __| [0m 08:32:28 [38;5;11m | (___ | |_ _ __ _ _| | _____ _ __ | \| | |__ | | [0m 08:32:28 [38;5;11m \___ \| __| '__| | | | |/ / _ \ '__| | . ` | __| | | [0m 08:32:28 [38;5;11m ____) | |_| | | |_| | < __/ | | |\ | |____ | | [0m 08:32:28 [38;5;11m |_____/ \__|_| \__, |_|\_\___|_| (_)|_| \_|______| |_| [0m 08:32:28 [38;5;11m __/ | [0m 08:32:28 [38;5;11m |___/ [0m 08:32:28 08:32:28 08:32:29 Version: [38;5;2m4.0.5[0m 08:32:29 08:32:29 [06:32:29 INF] Analysis starting. 08:32:29 [06:32:29 INF] Identifying projects to mutate in /home/jenkins/agent/workspace/s_Utility_MutationTesting_master/project-a/Company.ProjectA.sln. This can take a while. 08:32:47 [06:32:47 INF] Found 7 source projects 08:32:47 [06:32:47 INF] Found 2 test projects 08:32:47 [06:32:47 INF] Found project /home/jenkins/agent/workspace/s_Utility_MutationTesting_master/project-a/src/Company.ProjectA.Features/Company.ProjectA.Features.csproj to mutate. 08:32:48 [06:32:48 INF] Analysis complete. 08:32:48 [06:32:48 INF] Building solution Company.ProjectA.sln 08:33:28 [06:33:23 INF] Number of tests found: 3056 for project /home/jenkins/agent/workspace/s_Utility_MutationTesting_master/project-a/src/Company.ProjectA.Features/Company.ProjectA.Features.csproj. Initial test run started. 08:33:36 [06:33:35 WRN] Runner 3: Initial test run encounter an unexpected test case (Company.ProjectA.Tests.Component.Unit.Features.CustomerOrdersCollection.Mapping.LicenseOnlyMappingFixture.Map_ShouldMapBasic_WhenAdditionalMissing(inactiveFrom: 2024-05-23T06:33:23.8657272+00:00)), mutation tests may be inaccurate. Disable coverage analysis if you have doubts. 08:33:36 [06:33:35 WRN] Runner 3: Initial test run encounter an unexpected test case (Company.ProjectA.Tests.Component.Unit.Features.CustomerOrdersCollection.Mapping.LicenseOnlyMappingFixture.Map_ShouldMapBasicAndLog_WhenMultipleSubsystems(inactiveFrom: 2024-05-23T06:33:23.8657272+00:00)), mutation tests may be inaccurate. Disable coverage analysis if you have doubts. 08:33:36 [06:33:35 WRN] Runner 3: Initial test run encounter an unexpected test case (Company.ProjectA.Tests.Component.Unit.Features.CustomerOrdersCollection.Mapping.LicenseOnlyMappingFixture.Map_ShouldMapBasic(inactiveFrom: 2024-05-23T06:33:23.8657272+00:00)), mutation tests may be inaccurate. Disable coverage analysis if you have doubts. 08:33:36 [06:33:35 WRN] Runner 3: Initial test run encounter an unexpected test case (Company.ProjectA.Tests.Component.Unit.Features.CustomerOrdersCollection.Mapping.LicenseOnlyMappingFixture.Map_ShouldMapBasicAndLog_WhenMultipleValidSubsystems(inactiveFrom: 2024-05-23T06:33:23.8657272+00:00)), mutation tests may be inaccurate. Disable coverage analysis if you have doubts. 08:33:36 [06:33:35 WRN] Runner 3: Initial test run encounter an unexpected test case (Company.ProjectA.Tests.Component.Unit.Features.CustomerOrdersCollection.Mapping.LicenseOnlyMappingFixture.Map_ShouldMapBasic_WhenReturnShipmentAndProductCodesMissing(inactiveFrom: 2024-05-23T06:33:23.8657272+00:00)), mutation tests may be inaccurate. Disable coverage analysis if you have doubts. 08:33:36 [06:33:35 WRN] A test is failing. Stryker will continue but outcome will be impacted. 08:33:55 [06:33:55 WRN] Stryker.NET encountered a compile error in /home/jenkins/agent/workspace/s_Utility_MutationTesting_master/project-a/src/Company.ProjectA.Features/MasterDataCollection/Mapping/ArticleMapping.cs (at 18:51) with message: Argument 1: cannot convert from 'double?' to 'double' (Source code: price.Calculation?.GrossAmount ?? (Strykern9enOkW6WjlvbuD.MutantControl.IsActive(2481)?price.Price1 :(Strykern9enOkW6WjlvbuD.MutantControl.IsActive(2480)?0:price.Price1 ?? 0))) 08:33:55 [06:33:55 INF] Safe Mode! Stryker will flag mutations in Map as compile error. 08:34:05 [06:34:05 INF] 5497 mutants created 08:34:05 [06:34:05 INF] Capture mutant coverage using 'CoverageBasedTest' mode. 08:34:18 [06:34:18 WRN] VsTestRunner: Coverage analysis run encountered a unexpected test case (Company.ProjectA.Tests.Component.Unit.Features.CustomerOrdersCollection.Mapping.LicenseOnlyMappingFixture.Map_ShouldMapBasic(inactiveFrom: 2024-05-23T06:34:06.7628928+00:00)), mutation tests may be inaccurate. Disable coverage analysis if you have doubts. 08:34:18 [06:34:18 WRN] VsTestRunner: Coverage analysis run encountered a unexpected test case (Company.ProjectA.Tests.Component.Unit.Features.CustomerOrdersCollection.Mapping.LicenseOnlyMappingFixture.Map_ShouldMapBasic_WhenAdditionalMissing(inactiveFrom: 2024-05-23T06:34:06.7628928+00:00)), mutation tests may be inaccurate. Disable coverage analysis if you have doubts. 08:34:18 [06:34:18 WRN] VsTestRunner: Coverage analysis run encountered a unexpected test case (Company.ProjectA.Tests.Component.Unit.Features.CustomerOrdersCollection.Mapping.LicenseOnlyMappingFixture.Map_ShouldMapBasic_WhenReturnShipmentAndProductCodesMissing(inactiveFrom: 2024-05-23T06:34:06.7628928+00:00)), mutation tests may be inaccurate. Disable coverage analysis if you have doubts. 08:34:18 [06:34:18 WRN] VsTestRunner: Coverage analysis run encountered a unexpected test case (Company.ProjectA.Tests.Component.Unit.Features.CustomerOrdersCollection.Mapping.LicenseOnlyMappingFixture.Map_ShouldMapBasicAndLog_WhenMultipleSubsystems(inactiveFrom: 2024-05-23T06:34:06.7628928+00:00)), mutation tests may be inaccurate. Disable coverage analysis if you have doubts. 08:34:18 [06:34:18 WRN] VsTestRunner: Coverage analysis run encountered a unexpected test case (Company.ProjectA.Tests.Component.Unit.Features.CustomerOrdersCollection.Mapping.LicenseOnlyMappingFixture.Map_ShouldMapBasicAndLog_WhenMultipleValidSubsystems(inactiveFrom: 2024-05-23T06:34:06.7628928+00:00)), mutation tests may be inaccurate. Disable coverage analysis if you have doubts. 08:34:19 [38;5;14mHint: by passing "--open-report or -o" the report will open automatically and [0m 08:34:19 [38;5;14mupdate the report in real-time.[0m 08:34:19 [06:34:19 INF] 3 mutants got status CompileError. Reason: Could not be injected in code. 08:34:19 [06:34:19 INF] 311 mutants got status CompileError. Reason: Mutant caused compile errors 08:34:19 [06:34:19 INF] 294 mutants got status NoCoverage. Reason: Not covered by any test. 08:34:19 [06:34:19 INF] 1087 mutants got status Ignored. Reason: Removed by block already covered filter 08:34:19 [06:34:19 INF] 6 mutants got status Ignored. Reason: Removed by exclude from code coverage filter 08:34:19 [06:34:19 INF] 1701 total mutants are skipped for the above mentioned reasons 08:34:19 [06:34:19 INF] 3796 total mutants will be tested 08:46:28 08:46:28 08:46:28 All mutants have been tested, and your mutation score has been calculated 08:46:28 ╭─────────────────────────────────────────────────────┬──┬───┬────┬─────┬───┬──╮ 08:46:28 │ File │ │ # │ # │ # │ # │ │ 08:46:28 │ │ │ … │ t… │ su… │ … │ │ 08:46:28 │ │ │ │ │ │ … │ │ 08:46:28 ├─────────────────────────────────────────────────────┼──┼───┼────┼─────┼───┼──┤ 08:46:28 │ Many files │ │ 2 │ 67 │ 226 │ 2 │ │ 08:46:28 ╰─────────────────────────────────────────────────────┴──┴───┴────┴─────┴───┴──╯ 08:46:28 08:46:28 [38;5;2mYour json report has been generated at:[0m 08:46:28 ]8;id=1080510029;file:///home/jenkins/agent/workspace/s_Utility_MutationTesting_master/project-a/StrykerOutput_ProjectA/reports/mutation-report.json\[38;5;2m/home/jenkins/agent/workspace/s_Utility_MutationTesting_master/sending-data-deci[0m]8;;\ 08:46:28 ]8;id=97088849;file:///home/jenkins/agent/workspace/s_Utility_MutationTesting_master/project-a/StrykerOutput_ProjectA/reports/mutation-report.json\[38;5;2msion-manager/StrykerOutput_ProjectA/reports/mutation-report.js[0m]8;;\ 08:46:28 ]8;id=182128753;file:///home/jenkins/agent/workspace/s_Utility_MutationTesting_master/project-a/StrykerOutput_ProjectA/reports/mutation-report.json\[38;5;2mon[0m]8;;\ 08:46:28 08:46:28 [38;5;2mYour html report has been generated at:[0m 08:46:28 ]8;id=36611438;file:///home/jenkins/agent/workspace/s_Utility_MutationTesting_master/project-a/StrykerOutput_ProjectA/reports/mutation-report.html\[38;5;2m/home/jenkins/agent/workspace/s_Utility_MutationTesting_master/sending-data-deci[0m]8;;\ 08:46:28 ]8;id=717310725;file:///home/jenkins/agent/workspace/s_Utility_MutationTesting_master/project-a/StrykerOutput_ProjectA/reports/mutation-report.html\[38;5;2msion-manager/StrykerOutput_ProjectA/reports/mutation-report.ht[0m]8;;\ 08:46:28 ]8;id=646140069;file:///home/jenkins/agent/workspace/s_Utility_MutationTesting_master/project-a/StrykerOutput_ProjectA/reports/mutation-report.html\[38;5;2mml[0m]8;;\ 08:46:28 [38;5;2mYou can open it in your browser of choice.[0m 08:46:28 [06:46:18 INF] Time Elapsed 00:13:49.0069610 08:46:28 [06:46:18 INF] The final mutation score is 78.95 % [Pipeline] archiveArtifacts 08:46:28 Archiving artifacts [Pipeline] } [Pipeline] // dir [Pipeline] } [Pipeline] // withCredentials [Pipeline] echo 08:46:42 run project-b [Pipeline] withCredentials 08:46:42 Masking supported pattern matches of $GIT_PASS [Pipeline] { [Pipeline] sh 08:46:43 + git clone https://****:****@git.company.com/scm/organization/project-b.git 08:46:43 Cloning into 'project-b'... [Pipeline] dir 08:46:46 Running in /home/jenkins/agent/workspace/s_Utility_MutationTesting_master/project-b [Pipeline] { [Pipeline] fileExists [Pipeline] sh 08:46:47 + export NUGET_CERT_REVOCATION_MODE=offline 08:46:47 + dotnet tool install --tool-path ./tools --add-source https://artifactory.tools.company.com/artifactory/api/nuget/nuget-virtual dotnet-stryker 08:46:50 You can invoke the tool using the following command: dotnet-stryker 08:46:50 Tool 'dotnet-stryker' (version '4.0.5') was successfully installed. [Pipeline] sh 08:46:51 + ./tools/dotnet-stryker --reporter Html --reporter cleartext --reporter json --mutation-level Complete --output StrykerOutput_ProjectB --config-file stryker-config.json 08:46:51 08:46:51 [38;5;11m _____ _ _ _ _ ______ _______ [0m 08:46:51 [38;5;11m / ____| | | | | \ | | ____|__ __| [0m 08:46:51 [38;5;11m | (___ | |_ _ __ _ _| | _____ _ __ | \| | |__ | | [0m 08:46:51 [38;5;11m \___ \| __| '__| | | | |/ / _ \ '__| | . ` | __| | | [0m 08:46:51 [38;5;11m ____) | |_| | | |_| | < __/ | | |\ | |____ | | [0m 08:46:51 [38;5;11m |_____/ \__|_| \__, |_|\_\___|_| (_)|_| \_|______| |_| [0m 08:46:51 [38;5;11m __/ | [0m 08:46:51 [38;5;11m |___/ [0m 08:46:51 08:46:51 08:46:51 Version: [38;5;2m4.0.5[0m 08:46:51 08:46:51 [06:46:51 INF] Analysis starting. 08:46:51 [06:46:51 INF] Identifying projects to mutate in /home/jenkins/agent/workspace/s_Utility_MutationTesting_master/project-b/Stryker.sln. This can take a while. 08:47:07 [06:47:05 INF] Found 3 source projects 08:47:07 [06:47:05 INF] Found 1 test projects 08:47:07 [06:47:05 INF] Found project /home/jenkins/agent/workspace/s_Utility_MutationTesting_master/project-b/tests/Company.ProjectB.Tests.Common/Company.ProjectB.Tests.Common.csproj to mutate. 08:47:07 [06:47:06 INF] Found project /home/jenkins/agent/workspace/s_Utility_MutationTesting_master/project-b/src/Company.ProjectB.Core/Company.ProjectB.Core.csproj to mutate. 08:47:07 [06:47:06 INF] Found project /home/jenkins/agent/workspace/s_Utility_MutationTesting_master/project-b/src/Company.ProjectB.Features/Company.ProjectB.Features.csproj to mutate. 08:47:07 [06:47:06 INF] Analysis complete. 08:47:07 [06:47:06 INF] Building solution Stryker.sln 08:47:26 [06:47:23 INF] Number of tests found: 975 for project /home/jenkins/agent/workspace/s_Utility_MutationTesting_master/project-b/tests/Company.ProjectB.Tests.Common/Company.ProjectB.Tests.Common.csproj. Initial test run started. 08:47:31 [06:47:30 INF] Number of tests found: 975 for project /home/jenkins/agent/workspace/s_Utility_MutationTesting_master/project-b/src/Company.ProjectB.Core/Company.ProjectB.Core.csproj. Initial test run started. 08:47:38 [06:47:37 INF] Number of tests found: 975 for project /home/jenkins/agent/workspace/s_Utility_MutationTesting_master/project-b/src/Company.ProjectB.Features/Company.ProjectB.Features.csproj. Initial test run started. 08:47:54 [06:47:52 INF] 2820 mutants created 08:47:54 [06:47:52 INF] Capture mutant coverage using 'CoverageBasedTest' mode. 08:48:16 [38;5;14mHint: by passing "--open-report or -o" the report will open automatically and [0m 08:48:16 [38;5;14mupdate the report in real-time.[0m 08:48:16 [06:48:14 INF] 8 mutants got status Ignored. Reason: don't mutate the default as it's only a compiler necessity 08:48:16 [06:48:14 INF] 131 mutants got status CompileError. Reason: Mutant caused compile errors 08:48:16 [06:48:14 INF] 9 mutants got status NoCoverage. Reason: Not covered by any test. 08:48:16 [06:48:14 INF] 346 mutants got status Ignored. Reason: Removed by block already covered filter 08:48:16 [06:48:14 INF] 59 mutants got status Ignored. Reason: Removed by exclude from code coverage filter 08:48:16 [06:48:14 INF] 160 mutants got status Ignored. Reason: Removed by method filter 08:48:16 [06:48:14 INF] 956 mutants got status Ignored. Reason: Removed by mutate filter 08:48:16 [06:48:14 INF] 3 mutants got status Ignored. Reason: replacing LINQ methods "Sum" with "Max" does not make any difference here 08:48:16 [06:48:14 INF] 1 mutants got status Ignored. Reason: tasks are already finished in the tests 08:48:16 [06:48:14 INF] 1673 total mutants are skipped for the above mentioned reasons 08:48:16 [06:48:14 INF] 1147 total mutants will be tested 08:51:24 08:51:24 08:51:24 All mutants have been tested, and your mutation score has been calculated 08:51:24 … 08:51:24 [38;5;2mYour json report has been generated at:[0m 08:51:24 ]8;id=1910446148;file:///home/jenkins/agent/workspace/s_Utility_MutationTesting_master/project-b/StrykerOutput_ProjectB/reports/mutation-report.json\[38;5;2m/home/jenkins/agent/workspace/s_Utility_MutationTesting_master/delivery-plan-cre[0m]8;;\ 08:51:24 ]8;id=1093470812;file:///home/jenkins/agent/workspace/s_Utility_MutationTesting_master/project-b/StrykerOutput_ProjectB/reports/mutation-report.json\[38;5;2mator/StrykerOutput_ProjectB/reports/mutation-report.json[0m]8;;\ 08:51:24 08:51:24 [38;5;2mYour html report has been generated at:[0m 08:51:24 ]8;id=391828808;file:///home/jenkins/agent/workspace/s_Utility_MutationTesting_master/project-b/StrykerOutput_ProjectB/reports/mutation-report.html\[38;5;2m/home/jenkins/agent/workspace/s_Utility_MutationTesting_master/delivery-plan-cre[0m]8;;\ 08:51:24 ]8;id=1700196764;file:///home/jenkins/agent/workspace/s_Utility_MutationTesting_master/project-b/StrykerOutput_ProjectB/reports/mutation-report.html\[38;5;2mator/StrykerOutput_ProjectB/reports/mutation-report.html[0m]8;;\ 08:51:24 [38;5;2mYou can open it in your browser of choice.[0m 08:51:24 [06:51:12 INF] Time Elapsed 00:04:20.3612737 08:51:24 [06:51:12 INF] The final mutation score is 95.07 % [Pipeline] archiveArtifacts 08:51:24 Archiving artifacts [Pipeline] } [Pipeline] // dir [Pipeline] } [Pipeline] // withCredentials [Pipeline] echo 08:51:24 run project-c [Pipeline] withCredentials 08:51:24 Masking supported pattern matches of $GIT_PASS [Pipeline] { [Pipeline] sh 08:51:25 + git clone https://****:****@git.company.com/scm/organization/project-c.git 08:51:25 Cloning into 'project-c'... [Pipeline] dir 08:51:27 Running in /home/jenkins/agent/workspace/s_Utility_MutationTesting_master/project-c [Pipeline] { [Pipeline] fileExists [Pipeline] sh 08:51:28 + export NUGET_CERT_REVOCATION_MODE=offline 08:51:28 + dotnet tool install --tool-path ./tools --add-source https://artifactory.tools.company.com/artifactory/api/nuget/nuget-virtual dotnet-stryker 08:51:31 You can invoke the tool using the following command: dotnet-stryker 08:51:31 Tool 'dotnet-stryker' (version '4.0.5') was successfully installed. [Pipeline] sh 08:51:31 + ./tools/dotnet-stryker --reporter Html --reporter cleartext --reporter json --mutation-level Complete --output StrykerOutput_ProjectC --config-file stryker-config.json 08:51:31 08:51:31 [38;5;11m _____ _ _ _ _ ______ _______ [0m 08:51:31 [38;5;11m / ____| | | | | \ | | ____|__ __| [0m 08:51:31 [38;5;11m | (___ | |_ _ __ _ _| | _____ _ __ | \| | |__ | | [0m 08:51:31 [38;5;11m \___ \| __| '__| | | | |/ / _ \ '__| | . ` | __| | | [0m 08:51:31 [38;5;11m ____) | |_| | | |_| | < __/ | | |\ | |____ | | [0m 08:51:31 [38;5;11m |_____/ \__|_| \__, |_|\_\___|_| (_)|_| \_|______| |_| [0m 08:51:31 [38;5;11m __/ | [0m 08:51:31 [38;5;11m |___/ [0m 08:51:31 08:51:31 08:51:32 Version: [38;5;2m4.0.5[0m 08:51:32 08:51:32 [06:51:32 INF] Analysis starting. 08:51:32 [06:51:32 INF] Identifying projects to mutate in /home/jenkins/agent/workspace/s_Utility_MutationTesting_master/project-c/Company.ProjectC.sln. This can take a while. 08:51:47 [06:51:46 INF] Found 5 source projects 08:51:47 [06:51:46 INF] Found 2 test projects 08:51:47 [06:51:46 INF] Found project /home/jenkins/agent/workspace/s_Utility_MutationTesting_master/project-c/src/Company.ProjectC.Features/Company.ProjectC.Features.csproj to mutate. 08:51:47 [06:51:47 INF] Analysis complete. 08:51:47 [06:51:47 INF] Building solution Company.ProjectC.sln 08:52:06 [06:52:06 WRN] Project '/home/jenkins/agent/workspace/s_Utility_MutationTesting_master/project-c/tests/Company.ProjectC.Tests.SystemIntegration/Company.ProjectC.Tests.SystemIntegration.csproj' did not report any test. This may be because the test adapter package, xunit.runner.visualstudio, failed to deploy. Check if any dependency is missing or there is a version conflict. 08:52:06 [06:52:06 INF] Number of tests found: 906 for project /home/jenkins/agent/workspace/s_Utility_MutationTesting_master/project-c/src/Company.ProjectC.Features/Company.ProjectC.Features.csproj. Initial test run started. 08:52:28 [06:52:26 WRN] 15 tests are failing. Stryker will continue but outcome will be impacted. 08:52:33 [06:52:32 WRN] Stryker.NET encountered a compile error in /home/jenkins/agent/workspace/s_Utility_MutationTesting_master/project-c/src/Company.ProjectC.Features/SortPlan/Queries/SortPlanActivations/SortingProductsBySortPlanActivationIdQuery.cs (at 25:10) with message: Constructor 'SortingProductsBySortPlanActivationIdQuery.SortingProductsBySortPlanActivationIdQuery(int, int?, int?, string?, string?, string?, IReadOnlyCollectionExpected behavior
As it does not fail when running the projects individually, it must not fail in this case either.
Desktop (please complete the following information):
4.0.5
Additional context
Here's the relevant section from the
Jenkinsfile
: