diff --git a/.github/workflows/integration-test.yaml b/.github/workflows/integration-test.yaml
index 1c12620ea5..ba005cdb2f 100644
--- a/.github/workflows/integration-test.yaml
+++ b/.github/workflows/integration-test.yaml
@@ -1,5 +1,5 @@
name: integration test macos m1
-run-name: e2e ${{ github.head_ref }} on m1 macos
+run-name: e2e ${{ github.head_ref }} on macOS apple silicon ARM
on: [pull_request]
diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props
index 0b72cfdbbf..708d6653d7 100644
--- a/src/Directory.Packages.props
+++ b/src/Directory.Packages.props
@@ -4,13 +4,14 @@
+
-
+
@@ -19,31 +20,31 @@
-
+
-
+
-
+
-
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
+
-
-
+
+
diff --git a/src/Stryker.Abstractions/packages.lock.json b/src/Stryker.Abstractions/packages.lock.json
index de473ecd37..2991310daa 100644
--- a/src/Stryker.Abstractions/packages.lock.json
+++ b/src/Stryker.Abstractions/packages.lock.json
@@ -56,9 +56,9 @@
},
"Microsoft.TestPlatform.ObjectModel": {
"type": "Direct",
- "requested": "[18.0.1, )",
- "resolved": "18.0.1",
- "contentHash": "qT/mwMcLF9BieRkzOBPL2qCopl8hQu6A1P7JWAoj/FMu5i9vds/7cjbJ/LLtaiwWevWLAeD5v5wjQJ/l6jvhWQ==",
+ "requested": "[17.14.1, )",
+ "resolved": "17.14.1",
+ "contentHash": "xTP1W6Mi6SWmuxd3a+jj9G9UoC850WGwZUps1Wah9r1ZxgXhdJfj1QqDLJkFjHDCvN42qDL2Ps5KjQYWUU0zcQ==",
"dependencies": {
"System.Reflection.Metadata": "8.0.0"
}
@@ -71,11 +71,11 @@
},
"TestableIO.System.IO.Abstractions.Wrappers": {
"type": "Direct",
- "requested": "[22.1.0, )",
- "resolved": "22.1.0",
- "contentHash": "IsW3jQqIiTN4GwdWFx+dzgRL5XR75UDTFVGuuIackPf2d7eH0KKyrx4wuIoASa1XnS9zhgLP39FKwJq6nbbx1w==",
+ "requested": "[22.0.16, )",
+ "resolved": "22.0.16",
+ "contentHash": "QUX0TLMvnRLEgvuMRotrZKN9eCdX4yzK7HJCaPj17T4jvUf+G4XifdLpB5wmRct2zKlscYzpWMOmHjKabse3yw==",
"dependencies": {
- "Testably.Abstractions.FileSystem.Interface": "10.0.0"
+ "Testably.Abstractions.FileSystem.Interface": "9.0.0"
}
},
"Buildalyzer.Logger": {
@@ -130,15 +130,6 @@
"System.Configuration.ConfigurationManager": "8.0.0"
}
},
- "Microsoft.Extensions.DependencyInjection": {
- "type": "Transitive",
- "resolved": "6.0.0",
- "contentHash": "k6PWQMuoBDGGHOQTtyois2u4AwyVcIwL2LaSLlTZQm2CYcJ1pxbt6jfAnpWmzENA/wfrYRI/X9DTLoUkE4AsLw==",
- "dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0",
- "System.Runtime.CompilerServices.Unsafe": "6.0.0"
- }
- },
"Microsoft.Extensions.DependencyInjection.Abstractions": {
"type": "Transitive",
"resolved": "6.0.0",
@@ -280,8 +271,8 @@
},
"Testably.Abstractions.FileSystem.Interface": {
"type": "Transitive",
- "resolved": "10.0.0",
- "contentHash": "tZOXFLGjkh8TxgMgKeEcM2HAlz9DwndGl6TFLo6ISHcszFX3FkuPMrtVbmqVjhooWNXrgJ/a9cH9ym5MZL1LAg=="
+ "resolved": "9.0.0",
+ "contentHash": "uksk86YlnzAdyfVNu3wICU0X5iXVe9LF7Q3UkngNliHWEvM5gvAlOUr+jmd9JwmbJWISH5+i1vyXE02lEVz7WQ=="
},
"Microsoft.CodeAnalysis.Analyzers": {
"type": "CentralTransitive",
@@ -298,9 +289,19 @@
"Microsoft.CodeAnalysis.Common": "[4.0.0]"
}
},
+ "Microsoft.Extensions.DependencyInjection": {
+ "type": "CentralTransitive",
+ "requested": "[9.0.10, )",
+ "resolved": "6.0.0",
+ "contentHash": "k6PWQMuoBDGGHOQTtyois2u4AwyVcIwL2LaSLlTZQm2CYcJ1pxbt6jfAnpWmzENA/wfrYRI/X9DTLoUkE4AsLw==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0",
+ "System.Runtime.CompilerServices.Unsafe": "6.0.0"
+ }
+ },
"Microsoft.Extensions.Logging": {
"type": "CentralTransitive",
- "requested": "[10.0.0, )",
+ "requested": "[9.0.10, )",
"resolved": "6.0.0",
"contentHash": "eIbyj40QDg1NDz0HBW0S5f3wrLVnKWnDJ/JtZ+yJDFnDj90VoPuoPmFkeaXrtu+0cKm5GRAwoDf+dBWXK0TUdg==",
"dependencies": {
@@ -313,13 +314,13 @@
},
"Microsoft.Extensions.Logging.Abstractions": {
"type": "CentralTransitive",
- "requested": "[10.0.0, )",
+ "requested": "[9.0.10, )",
"resolved": "6.0.0",
"contentHash": "/HggWBbTwy8TgebGSX5DBZ24ndhzi93sHUBDvP1IxbZD7FDokYzdAr6+vbWGjw2XAfR2EJ1sfKUotpjHnFWPxA=="
},
"NuGet.Frameworks": {
"type": "CentralTransitive",
- "requested": "[7.0.1, )",
+ "requested": "[6.14.0, )",
"resolved": "6.9.1",
"contentHash": "DaKh3lenPUvzGccPkbI97BIvA27z+/UsL3ankfoZlX/4vBVDK5N1sheFTQ+GuJf+IgSzsJz/A21SPUpQLHwUtA=="
}
diff --git a/src/Stryker.CLI/Stryker.CLI.UnitTest/FileConfigReaderTests.cs b/src/Stryker.CLI/Stryker.CLI.UnitTest/FileConfigReaderTests.cs
index 04a84811cc..3a8bb84783 100644
--- a/src/Stryker.CLI/Stryker.CLI.UnitTest/FileConfigReaderTests.cs
+++ b/src/Stryker.CLI/Stryker.CLI.UnitTest/FileConfigReaderTests.cs
@@ -1,10 +1,15 @@
using System.IO;
+using System.IO.Abstractions;
using Microsoft.Extensions.Logging;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Moq;
using Shouldly;
+using Spectre.Console;
using Stryker.Abstractions;
using Stryker.Abstractions.Options;
+using Stryker.CLI.Clients;
+using Stryker.CLI.Logging;
+using Stryker.Configuration;
using Stryker.Core;
using Stryker.Core.Initialisation;
@@ -29,8 +34,8 @@ public void WithNoArgumentsAndNoConfigFile_ShouldStartStrykerWithConfigOptions()
var currentDirectory = Directory.GetCurrentDirectory();
Directory.SetCurrentDirectory($"..{Path.DirectorySeparatorChar}");
var runResults = new StrykerRunResult(options, 0.3);
- mock.Setup(x => x.RunMutationTest(It.IsAny(), It.IsAny(), It.IsAny())).Returns(runResults).Verifiable();
- var target = new StrykerCli(mock.Object);
+ mock.Setup(x => x.RunMutationTest(It.IsAny())).Returns(runResults).Verifiable();
+ var target = new StrykerCli(mock.Object, new ConfigBuilder(), Mock.Of(), Mock.Of(), Mock.Of(), Mock.Of());
target.Run(new string[] { });
@@ -57,12 +62,12 @@ public void WithJsonConfigFile_ShouldStartStrykerWithConfigFileOptions(string ar
var runResults = new StrykerRunResult(options, 0.3);
var mock = new Mock(MockBehavior.Strict);
- mock.Setup(x => x.RunMutationTest(It.IsAny(), It.IsAny(), It.IsAny()))
- .Callback((c, l, p) => actualInputs = c)
+ mock.Setup(x => x.RunMutationTest(It.IsAny()))
+ .Callback(c => actualInputs = c)
.Returns(runResults)
.Verifiable();
- var target = new StrykerCli(mock.Object);
+ var target = new StrykerCli(mock.Object, new ConfigBuilder(), Mock.Of(), Mock.Of(), Mock.Of(), Mock.Of());
target.Run(new string[] { argName, "filled-stryker-config.json" });
@@ -104,12 +109,12 @@ public void WithYamlConfigFile_ShouldStartStrykerWithConfigFileOptions()
var runResults = new StrykerRunResult(options, 0.3);
var mock = new Mock(MockBehavior.Strict);
- mock.Setup(x => x.RunMutationTest(It.IsAny(), It.IsAny(), It.IsAny()))
- .Callback((c, l, p) => actualInputs = c)
+ mock.Setup(x => x.RunMutationTest(It.IsAny()))
+ .Callback(c => actualInputs = c)
.Returns(runResults)
.Verifiable();
- var target = new StrykerCli(mock.Object);
+ var target = new StrykerCli(mock.Object, new ConfigBuilder(), Mock.Of(), Mock.Of(), Mock.Of(), Mock.Of());
target.Run(new string[] { "-f", "filled-stryker-config.yaml" });
diff --git a/src/Stryker.CLI/Stryker.CLI.UnitTest/StrykerCLIInitCommandTests.cs b/src/Stryker.CLI/Stryker.CLI.UnitTest/StrykerCLIInitCommandTests.cs
index 7b6416200c..3bcfab43fc 100644
--- a/src/Stryker.CLI/Stryker.CLI.UnitTest/StrykerCLIInitCommandTests.cs
+++ b/src/Stryker.CLI/Stryker.CLI.UnitTest/StrykerCLIInitCommandTests.cs
@@ -26,7 +26,7 @@ public class StrykerCLIInitCommandTests
public StrykerCLIInitCommandTests()
{
- _target = new StrykerCli(_strykerRunnerMock.Object, null, _loggingInitializerMock.Object, _nugetClientMock.Object, _consoleMock, _fileSystemMock);
+ _target = new StrykerCli(_strykerRunnerMock.Object, new ConfigBuilder(), _loggingInitializerMock.Object, _nugetClientMock.Object, _consoleMock, _fileSystemMock);
}
[TestMethod]
diff --git a/src/Stryker.CLI/Stryker.CLI.UnitTest/StrykerCLITests.cs b/src/Stryker.CLI/Stryker.CLI.UnitTest/StrykerCLITests.cs
index 904e4fed31..2f6d904b67 100644
--- a/src/Stryker.CLI/Stryker.CLI.UnitTest/StrykerCLITests.cs
+++ b/src/Stryker.CLI/Stryker.CLI.UnitTest/StrykerCLITests.cs
@@ -1,4 +1,5 @@
using System;
+using System.IO.Abstractions;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
@@ -8,6 +9,7 @@
using NuGet.Versioning;
using Serilog.Events;
using Shouldly;
+using Spectre.Console;
using Spectre.Console.Testing;
using Stryker.Abstractions;
using Stryker.Abstractions.Options;
@@ -35,12 +37,15 @@ public StrykerCLITests()
{
_options = new StrykerOptions() { Thresholds = new Thresholds { Break = 0 } };
_runResults = new StrykerRunResult(_options, 0.3);
- _strykerRunnerMock.Setup(x => x.RunMutationTest(It.IsAny(), It.IsAny(), It.IsAny()))
- .Callback((c, l, p) => _inputs = c)
+ _strykerRunnerMock.Setup(x => x.RunMutationTest(It.IsAny()))
+ .Callback(c => _inputs = c)
.Returns(_runResults)
.Verifiable();
_nugetClientMock.Setup(x => x.GetLatestVersionAsync()).Returns(Task.FromResult(new SemanticVersion(10, 0, 0)));
- _target = new StrykerCli(_strykerRunnerMock.Object, null, _loggingInitializerMock.Object, _nugetClientMock.Object);
+ var configBuilder = new ConfigBuilder();
+ var consoleMock = new Mock();
+ var fileSystemMock = new Mock();
+ _target = new StrykerCli(_strykerRunnerMock.Object, configBuilder, _loggingInitializerMock.Object, _nugetClientMock.Object, consoleMock.Object, fileSystemMock.Object);
}
[TestMethod]
@@ -48,7 +53,7 @@ public void ShouldDisplayInfoOnHelp()
{
var mock = new Mock(MockBehavior.Strict);
var console = new TestConsole().EmitAnsiSequences().Width(160);
- var target = new StrykerCli(mock.Object, console:console);
+ var target = new StrykerCli(mock.Object, new ConfigBuilder(), Mock.Of(), Mock.Of(), console, Mock.Of());
target.Run(new string[] { "--help" });
@@ -68,12 +73,12 @@ public void ShouldDisplayLogo()
var strykerRunnerMock = new Mock(MockBehavior.Strict);
var strykerRunResult = new StrykerRunResult(_options, 0.3);
- strykerRunnerMock.Setup(x => x.RunMutationTest(It.IsAny(), It.IsAny(), It.IsAny()))
+ strykerRunnerMock.Setup(x => x.RunMutationTest(It.IsAny()))
.Returns(strykerRunResult)
.Verifiable();
var console = new TestConsole().EmitAnsiSequences().Width(160);
- var target = new StrykerCli(strykerRunnerMock.Object, null, _loggingInitializerMock.Object, _nugetClientMock.Object, console);
+ var target = new StrykerCli(strykerRunnerMock.Object, new ConfigBuilder(), _loggingInitializerMock.Object, _nugetClientMock.Object, console, Mock.Of());
target.Run(Array.Empty());
@@ -121,12 +126,11 @@ public void OnMutationScoreBelowThresholdBreak_ShouldReturn_ExitCodeBreakThresho
};
var strykerRunResult = new StrykerRunResult(options, 0.3);
- mock.Setup(x => x.RunMutationTest(It.IsAny(), It.IsAny(), It.IsAny()))
- .Callback((c, l, p) => Utilities.Logging.ApplicationLogging.LoggerFactory = l)
+ mock.Setup(x => x.RunMutationTest(It.IsAny()))
.Returns(strykerRunResult)
.Verifiable();
- var target = new StrykerCli(mock.Object);
+ var target = new StrykerCli(mock.Object, new ConfigBuilder(), Mock.Of(), Mock.Of(), Mock.Of(), Mock.Of());
var result = target.Run(new string[] { });
mock.Verify();
@@ -146,11 +150,11 @@ public void OnMutationScoreEqualToNullAndThresholdBreakEqualTo0_ShouldReturnExit
}
};
var strykerRunResult = new StrykerRunResult(options, double.NaN);
- mock.Setup(x => x.RunMutationTest(It.IsAny(), It.IsAny(), It.IsAny()))
+ mock.Setup(x => x.RunMutationTest(It.IsAny()))
.Returns(strykerRunResult)
.Verifiable();
- var target = new StrykerCli(mock.Object);
+ var target = new StrykerCli(mock.Object, new ConfigBuilder(), Mock.Of(), Mock.Of(), Mock.Of(), Mock.Of());
var result = target.Run(new string[] { });
mock.Verify();
@@ -170,11 +174,11 @@ public void OnMutationScoreEqualToNullAndThresholdBreakAbove0_ShouldReturnExitCo
}
};
var strykerRunResult = new StrykerRunResult(options, double.NaN);
- mock.Setup(x => x.RunMutationTest(It.IsAny(), It.IsAny(), It.IsAny()))
+ mock.Setup(x => x.RunMutationTest(It.IsAny()))
.Returns(strykerRunResult)
.Verifiable();
- var target = new StrykerCli(mock.Object, null, _loggingInitializerMock.Object, _nugetClientMock.Object);
+ var target = new StrykerCli(mock.Object, new ConfigBuilder(), _loggingInitializerMock.Object, _nugetClientMock.Object, Mock.Of(), Mock.Of());
var result = target.Run(new string[] { });
mock.Verify();
@@ -195,9 +199,9 @@ public void OnMutationScoreAboveThresholdBreak_ShouldReturnExitCode0()
};
var strykerRunResult = new StrykerRunResult(options, 0.1);
- mock.Setup(x => x.RunMutationTest(It.IsAny(), It.IsAny(), It.IsAny())).Returns(strykerRunResult).Verifiable();
+ mock.Setup(x => x.RunMutationTest(It.IsAny())).Returns(strykerRunResult).Verifiable();
- var target = new StrykerCli(mock.Object);
+ var target = new StrykerCli(mock.Object, new ConfigBuilder(), Mock.Of(), Mock.Of(), Mock.Of(), Mock.Of());
var result = target.Run(new string[] { });
mock.Verify();
@@ -212,7 +216,7 @@ public void OnMutationScoreAboveThresholdBreak_ShouldReturnExitCode0()
public void ShouldNotStartStryker_WithHelpArgument(string argName)
{
var mock = new Mock(MockBehavior.Strict);
- var target = new StrykerCli(mock.Object);
+ var target = new StrykerCli(mock.Object, new ConfigBuilder(), Mock.Of(), Mock.Of(), Mock.Of(), Mock.Of());
target.Run(new string[] { argName });
@@ -223,11 +227,11 @@ public void ShouldNotStartStryker_WithHelpArgument(string argName)
public void ShouldThrow_OnException()
{
var mock = new Mock(MockBehavior.Strict);
- mock.Setup(x => x.RunMutationTest(It.IsAny(), It.IsAny(), It.IsAny()))
+ mock.Setup(x => x.RunMutationTest(It.IsAny()))
.Throws(new Exception("Initial testrun failed"))
.Verifiable();
- var target = new StrykerCli(mock.Object, null, _loggingInitializerMock.Object, _nugetClientMock.Object);
+ var target = new StrykerCli(mock.Object, new ConfigBuilder(), _loggingInitializerMock.Object, _nugetClientMock.Object, Mock.Of(), Mock.Of());
Should.Throw(() => target.Run(new string[] { }));
}
diff --git a/src/Stryker.CLI/Stryker.CLI.UnitTest/packages.lock.json b/src/Stryker.CLI/Stryker.CLI.UnitTest/packages.lock.json
index 638c90c49d..d026995b7b 100644
--- a/src/Stryker.CLI/Stryker.CLI.UnitTest/packages.lock.json
+++ b/src/Stryker.CLI/Stryker.CLI.UnitTest/packages.lock.json
@@ -10,12 +10,12 @@
},
"Microsoft.NET.Test.Sdk": {
"type": "Direct",
- "requested": "[18.0.1, )",
- "resolved": "18.0.1",
- "contentHash": "WNpu6vI2rA0pXY4r7NKxCN16XRWl5uHu6qjuyVLoDo6oYEggIQefrMjkRuibQHm/NslIUNCcKftvoWAN80MSAg==",
+ "requested": "[17.14.1, )",
+ "resolved": "17.14.1",
+ "contentHash": "HJKqKOE+vshXra2aEHpi2TlxYX7Z9VFYkr+E5rwEvHC8eIXiyO+K9kNm8vmNom3e2rA56WqxU+/N9NJlLGXsJQ==",
"dependencies": {
- "Microsoft.CodeCoverage": "18.0.1",
- "Microsoft.TestPlatform.TestHost": "18.0.1"
+ "Microsoft.CodeCoverage": "17.14.1",
+ "Microsoft.TestPlatform.TestHost": "17.14.1"
}
},
"Moq": {
@@ -52,21 +52,22 @@
},
"Spectre.Console.Testing": {
"type": "Direct",
- "requested": "[0.54.0, )",
- "resolved": "0.54.0",
- "contentHash": "9QjSrRH+scy66ppmOLDiSno0Uh1ISJL18FqmTQDFNvK/oNI1DaI30cy2Uj6v0gxLZghtc/eKTwXtPpe0KKfHXw==",
+ "requested": "[0.52.0, )",
+ "resolved": "0.52.0",
+ "contentHash": "wmthEamheMg6dtLtDemfrId/mBqAzZtPJtW2IdhEQiIPQdnJDyUima65z/ymPrRvX6UOHnybPPdS3ePybAdoCA==",
"dependencies": {
- "Spectre.Console": "0.54.0"
+ "Spectre.Console": "0.52.0",
+ "Spectre.Console.Cli": "0.52.0"
}
},
"TestableIO.System.IO.Abstractions.TestingHelpers": {
"type": "Direct",
- "requested": "[22.1.0, )",
- "resolved": "22.1.0",
- "contentHash": "320o0GORJV6VDFyKL7e7At+CTBFciFKKwgFYthCAPNKnlZLqyY68NKGQ+h4xTVf5y6qBtIsV3ap+Qog7VzF65g==",
+ "requested": "[22.0.16, )",
+ "resolved": "22.0.16",
+ "contentHash": "dIZ2qtrvWbilx2HGkBIp5LNZmEZT2rve2M/NEg3RAzR4WbTa/Gis1x/qRggnoqfDrZ0VnPaybJJKh6r9POQ1EQ==",
"dependencies": {
- "TestableIO.System.IO.Abstractions.Wrappers": "22.1.0",
- "Testably.Abstractions.FileSystem.Interface": "10.0.0"
+ "TestableIO.System.IO.Abstractions.Wrappers": "22.0.16",
+ "Testably.Abstractions.FileSystem.Interface": "9.0.0"
}
},
"Azure.Core": {
@@ -133,14 +134,6 @@
"resolved": "8.0.0",
"contentHash": "3WA9q9yVqJp222P3x1wYIGDAkpjAku0TMUaaQV22g6L67AI0LdOIrVS7Ht2vJfLHGSPVuqN94vIr15qn+HEkHw=="
},
- "Microsoft.Bcl.Cryptography": {
- "type": "Transitive",
- "resolved": "9.0.6",
- "contentHash": "QY+zvyOMPoa883T3JB+M9sQvYBfGHidptsVhD9pWn52fS3+xaUSIaf5Fcw8WIoyP6cx3K5vHMcvOdDz7NehZOA==",
- "dependencies": {
- "System.Formats.Asn1": "9.0.6"
- }
- },
"Microsoft.Build": {
"type": "Transitive",
"resolved": "17.10.4",
@@ -190,8 +183,8 @@
},
"Microsoft.CodeCoverage": {
"type": "Transitive",
- "resolved": "18.0.1",
- "contentHash": "O+utSr97NAJowIQT/OVp3Lh9QgW/wALVTP4RG1m2AfFP4IyJmJz0ZBmFJUsRQiAPgq6IRC0t8AAzsiPIsaUDEA=="
+ "resolved": "17.14.1",
+ "contentHash": "pmTrhfFIoplzFVbhVwUquT+77CbGH+h4/3mBpdmIlYtBi9nAB+kKI6dN3A/nV4DFi3wLLx/BlHIPK+MkbQ6Tpg=="
},
"Microsoft.DiaSymReader": {
"type": "Transitive",
@@ -214,18 +207,10 @@
"Microsoft.Extensions.Configuration.Abstractions": "6.0.0"
}
},
- "Microsoft.Extensions.DependencyInjection": {
- "type": "Transitive",
- "resolved": "10.0.0",
- "contentHash": "f0RBabswJq+gRu5a+hWIobrLWiUYPKMhCD9WO3sYBAdSy3FFH14LMvLVFZc2kPSCimBLxSuitUhsd6tb0TAY6A==",
- "dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0"
- }
- },
"Microsoft.Extensions.DependencyInjection.Abstractions": {
"type": "Transitive",
- "resolved": "10.0.0",
- "contentHash": "L3AdmZ1WOK4XXT5YFPEwyt0ep6l8lGIPs7F5OOBZc77Zqeo01Of7XXICy47628sdVl0v/owxYJTe86DTgFwKCA=="
+ "resolved": "9.0.10",
+ "contentHash": "r9waLiOPe9ZF1PvzUT+RDoHvpMmY8MW+lb4lqjYGObwKpnyPMLI3odVvlmshwuZcdoHynsGWOrCPA0hxZ63lIA=="
},
"Microsoft.Extensions.DependencyModel": {
"type": "Transitive",
@@ -241,17 +226,17 @@
},
"Microsoft.Extensions.Options": {
"type": "Transitive",
- "resolved": "10.0.0",
- "contentHash": "8oCAgXOow5XDrY9HaXX1QmH3ORsyZO/ANVHBlhLyCeWTH5Sg4UuqZeOTWJi6484M+LqSx0RqQXDJtdYy2BNiLQ==",
+ "resolved": "9.0.10",
+ "contentHash": "zMNABt8eBv0B0XrWjFy9nZNgddavaOeq3ZdaD5IlHhRH65MrU7HM+Hd8GjWE3e2VDGFPZFfSAc6XVXC17f9fOA==",
"dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0",
- "Microsoft.Extensions.Primitives": "10.0.0"
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.10",
+ "Microsoft.Extensions.Primitives": "9.0.10"
}
},
"Microsoft.Extensions.Primitives": {
"type": "Transitive",
- "resolved": "10.0.0",
- "contentHash": "inRnbpCS0nwO/RuoZIAqxQUuyjaknOOnCEZB55KSMMjRhl0RQDttSmLSGsUJN3RQ3ocf5NDLFd2mOQViHqMK5w=="
+ "resolved": "9.0.10",
+ "contentHash": "3pl8D1O5ZwMpDkZAT2uXrhQ6NipkwEgDLMFuURiHTf72TvkoMP61QYH3Vk1yrzVHnHBdNZk3cQACz8Zc7YGNhQ=="
},
"Microsoft.NET.StringTools": {
"type": "Transitive",
@@ -336,10 +321,10 @@
},
"Microsoft.TestPlatform.TestHost": {
"type": "Transitive",
- "resolved": "18.0.1",
- "contentHash": "uDJKAEjFTaa2wHdWlfo6ektyoh+WD4/Eesrwb4FpBFKsLGehhACVnwwTI4qD3FrIlIEPlxdXg3SyrYRIcO+RRQ==",
+ "resolved": "17.14.1",
+ "contentHash": "d78LPzGKkJwsJXAQwsbJJ7LE7D1wB+rAyhHHAaODF+RDSQ0NgMjDFkSA1Djw18VrxO76GlKAjRUhl+H8NL8Z+Q==",
"dependencies": {
- "Microsoft.TestPlatform.ObjectModel": "18.0.1",
+ "Microsoft.TestPlatform.ObjectModel": "17.14.1",
"Newtonsoft.Json": "13.0.3"
}
},
@@ -374,6 +359,11 @@
"Microsoft.Testing.Platform.MSBuild": "1.9.1"
}
},
+ "Namotion.Reflection": {
+ "type": "Transitive",
+ "resolved": "3.4.2",
+ "contentHash": "ZHrvPdAg7zV78iOTiH9ua+34rBfn4iH6Bjfo2bzUHOGD3KkjGUvqxBFy+v9p6qwV+GEeYWl4NOqXH8tVcZOMpw=="
+ },
"NETStandard.Library": {
"type": "Transitive",
"resolved": "2.0.0",
@@ -387,38 +377,62 @@
"resolved": "13.0.3",
"contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ=="
},
+ "NJsonSchema": {
+ "type": "Transitive",
+ "resolved": "11.4.0",
+ "contentHash": "0q6mr6eJk/D4jPFKyRwAPauedZK60yFE5rjA3+aqCdQm9kGE9J8xygRrLfk0Ms8wBviWbLlaZYzqAteG3b6Yag==",
+ "dependencies": {
+ "NJsonSchema.Annotations": "11.4.0",
+ "Namotion.Reflection": "3.4.2",
+ "Newtonsoft.Json": "13.0.3"
+ }
+ },
+ "NJsonSchema.Annotations": {
+ "type": "Transitive",
+ "resolved": "11.4.0",
+ "contentHash": "fKAGyIU9s18e9GAdNbEr2PmZdpBqb1RdAr2+EHHrdkSZNoYtwFcmN6syJaxYxeEFegoLbC3e+EU5eb7Tt1ph3Q=="
+ },
"NuGet.Common": {
"type": "Transitive",
- "resolved": "7.0.1",
- "contentHash": "AegMASeOhhm2flGk53b/YtINs2H+zKMnV5fTs3rRo08JMQ3gqrbJUSjiEMOKt5d541IhVA+pHDWVsDCZ+5g7Fg==",
+ "resolved": "6.14.0",
+ "contentHash": "E+IyoDez4kPrjNPYp41fScowTuSjGifXfjrtU9p9XlQDOGig6vrikQDCMeo6BT6YmT9vUZ+Tb1CX8ru8z0bkNg==",
"dependencies": {
- "NuGet.Frameworks": "7.0.1"
+ "NuGet.Frameworks": "6.14.0",
+ "System.Collections.Immutable": "8.0.0"
}
},
"NuGet.Configuration": {
"type": "Transitive",
- "resolved": "7.0.1",
- "contentHash": "En8aIvZywOmgi+Q2Tv7VUELSYc3OCTwmzItr2N3j5pVIBQE92HbOa1b4+fJJbl9X/rAOkNon3fxjwYeqrdMRrw==",
+ "resolved": "6.14.0",
+ "contentHash": "YwoF+Nm0IGdNP/LQ97xysCQlhy4oWIzD4oGcbvz5bQGogPrqn/5lSGwP8llmVv+zfJ6tZZDAT9vh4Q+gH0Aqqg==",
"dependencies": {
- "NuGet.Common": "7.0.1",
- "System.Security.Cryptography.ProtectedData": "9.0.6"
+ "NuGet.Common": "6.14.0",
+ "System.Security.Cryptography.ProtectedData": "4.4.0"
}
},
"NuGet.Packaging": {
"type": "Transitive",
- "resolved": "7.0.1",
- "contentHash": "hpC6Fx5VlMa42cSZDQ10TKDFHLoMpa8NbDwYSnCiGd4IPiG9+5ywWuxHjVbYYA7/PmJry5hs1GyJjvHV8bQmLw==",
+ "resolved": "6.14.0",
+ "contentHash": "BpQlGpkuAhrh6x00mGvwK13a5c30vX3FYQbWI11LIyXl/nWmoOQSZrB3yEAh9ihibeGo8SunWZBGXvkkJUxbEg==",
"dependencies": {
"Newtonsoft.Json": "13.0.3",
- "NuGet.Configuration": "7.0.1",
- "NuGet.Versioning": "7.0.1",
- "System.Security.Cryptography.Pkcs": "9.0.6"
+ "NuGet.Configuration": "6.14.0",
+ "NuGet.Versioning": "6.14.0",
+ "System.Security.Cryptography.Pkcs": "6.0.4"
}
},
"NuGet.Versioning": {
"type": "Transitive",
- "resolved": "7.0.1",
- "contentHash": "tu68LnZqiLM/VyLQzPRqedopMi/M+5/6JqwB2Xkd0AWXRpUWewkVv77asVB7wgjMPVzQFK2sBy7AuxV49UzuvQ=="
+ "resolved": "6.14.0",
+ "contentHash": "4v4blkhCv8mpKtfx+z0G/X0daVCzdIaHSC51GkUspugi5JIMn2Bo8xm5PdZYF0U68gOBfz/+aPWMnpRd85Jbow=="
+ },
+ "OpenCli.Sources": {
+ "type": "Transitive",
+ "resolved": "0.5.0",
+ "contentHash": "5FgwoxpZy9Qy7MsKHb2hZBTWXEvg7JCPuNnaqsn2g0/X9oWQVThYQ1nND1xJrq8P1aw+Gh8sirV1HbefeqSalw==",
+ "dependencies": {
+ "NJsonSchema": "11.4.0"
+ }
},
"runtime.native.System": {
"type": "Transitive",
@@ -471,6 +485,15 @@
"System.Text.Encoding.Extensions": "4.0.11"
}
},
+ "Spectre.Console.Cli": {
+ "type": "Transitive",
+ "resolved": "0.52.0",
+ "contentHash": "50O+XG7tqtEErVGtqX00aUcsXJs7ltlSkGGAdRTI17zEgqzpQd7RRtf657eHXnPSK10SCoAuVMK0fnWPXDoVCA==",
+ "dependencies": {
+ "OpenCli.Sources": "0.5.0",
+ "Spectre.Console": "0.52.0"
+ }
+ },
"System.Buffers": {
"type": "Transitive",
"resolved": "4.5.1",
@@ -521,8 +544,8 @@
},
"System.Diagnostics.DiagnosticSource": {
"type": "Transitive",
- "resolved": "10.0.0",
- "contentHash": "0KdBK+h7G13PuOSC2R/DalAoFMvdYMznvGRuICtkdcUMXgl/gYXsG6z4yUvTxHSMACorWgHCU1Faq0KUHU6yAQ=="
+ "resolved": "9.0.10",
+ "contentHash": "uIpKiKp7EWlYZBK71jYP+maGYjDY9YTi/FxBlZoqDzM1ZHZB7gLqUm4jHvRFwaKfR1/Lrt2rQih9LGPIKyNEow=="
},
"System.Diagnostics.EventLog": {
"type": "Transitive",
@@ -531,8 +554,8 @@
},
"System.Formats.Asn1": {
"type": "Transitive",
- "resolved": "9.0.6",
- "contentHash": "8LbKs3WVqyDSszFZJA9Uxg9z+C6WbPbFTSPm/HjFEsWx49XWs0ueqaAKPWncvFJ8yl4H4C/RTnUMhCKoXkddkg=="
+ "resolved": "8.0.0",
+ "contentHash": "AJukBuLoe3QeAF+mfaRKQb2dgyrvt340iMBHYv+VdBzCUM06IxGlvl0o/uPOS7lHnXPN6u8fFRHSHudx5aTi8w=="
},
"System.Globalization": {
"type": "Transitive",
@@ -732,17 +755,16 @@
},
"System.Security.Cryptography.Pkcs": {
"type": "Transitive",
- "resolved": "9.0.6",
- "contentHash": "Gny8p2mX0jc5rjh+PA4Gx5GG66sj2C+e+ro7+j/3IsKT/bmQ84tGRV+XKaG+5/CTCdwkSSKDWEQ1rJd0J5jE0Q==",
+ "resolved": "8.0.0",
+ "contentHash": "ULmp3xoOwNYjOYp4JZ2NK/6NdTgiN1GQXzVVN1njQ7LOZ0d0B9vyMnhyqbIi9Qw4JXj1JgCsitkTShboHRx7Eg==",
"dependencies": {
- "Microsoft.Bcl.Cryptography": "9.0.6",
- "System.Formats.Asn1": "9.0.6"
+ "System.Formats.Asn1": "8.0.0"
}
},
"System.Security.Cryptography.ProtectedData": {
"type": "Transitive",
- "resolved": "9.0.6",
- "contentHash": "yErfw/3pZkJE/VKza/Cm5idTpIKOy/vsmVi59Ta5SruPVtubzxb8CtnE8tyUpzs5pr0Y28GUFfSVzAhCLN3F/Q=="
+ "resolved": "8.0.0",
+ "contentHash": "+TUFINV2q2ifyXauQXRwy4CiBhqvDEDZeVJU7qfxya4aRYOKzVBpN+4acx25VcPB9ywUN6C0n8drWl110PhZEg=="
},
"System.Security.Cryptography.Xml": {
"type": "Transitive",
@@ -843,14 +865,15 @@
},
"Testably.Abstractions.FileSystem.Interface": {
"type": "Transitive",
- "resolved": "10.0.0",
- "contentHash": "tZOXFLGjkh8TxgMgKeEcM2HAlz9DwndGl6TFLo6ISHcszFX3FkuPMrtVbmqVjhooWNXrgJ/a9cH9ym5MZL1LAg=="
+ "resolved": "9.0.0",
+ "contentHash": "uksk86YlnzAdyfVNu3wICU0X5iXVe9LF7Q3UkngNliHWEvM5gvAlOUr+jmd9JwmbJWISH5+i1vyXE02lEVz7WQ=="
},
"dotnet-stryker": {
"type": "Project",
"dependencies": {
"McMaster.Extensions.CommandLineUtils": "[4.1.1, )",
- "NuGet.Protocol": "[7.0.1, )",
+ "Microsoft.Extensions.DependencyInjection": "[9.0.10, )",
+ "NuGet.Protocol": "[6.14.0, )",
"YamlDotNet": "[16.3.0, )",
"stryker": "[4.8.1, )"
}
@@ -865,20 +888,21 @@
"LibGit2Sharp": "[0.31.0, )",
"Microsoft.CodeAnalysis.CSharp": "[4.14.0, )",
"Microsoft.CodeAnalysis.Common": "[4.14.0, )",
- "Microsoft.Extensions.Logging": "[10.0.0, )",
- "Microsoft.TestPlatform": "[18.0.1, )",
- "Microsoft.TestPlatform.ObjectModel": "[18.0.1, )",
- "Microsoft.TestPlatform.Portable": "[18.0.1, )",
- "Microsoft.TestPlatform.TranslationLayer": "[18.0.1, )",
+ "Microsoft.Extensions.DependencyInjection": "[9.0.10, )",
+ "Microsoft.Extensions.Logging": "[9.0.10, )",
+ "Microsoft.TestPlatform": "[17.14.1, )",
+ "Microsoft.TestPlatform.ObjectModel": "[17.14.1, )",
+ "Microsoft.TestPlatform.Portable": "[17.14.1, )",
+ "Microsoft.TestPlatform.TranslationLayer": "[17.14.1, )",
"Microsoft.Web.LibraryManager.Build": "[3.0.71, )",
"Mono.Cecil": "[0.11.6, )",
- "NuGet.Frameworks": "[7.0.1, )",
+ "NuGet.Frameworks": "[6.14.0, )",
"Serilog": "[4.3.0, )",
- "Serilog.Extensions.Logging": "[10.0.0, )",
+ "Serilog.Extensions.Logging": "[9.0.2, )",
"Serilog.Extensions.Logging.File": "[3.0.0, )",
- "Serilog.Sinks.Console": "[6.1.1, )",
+ "Serilog.Sinks.Console": "[6.0.0, )",
"ShellProgressBar": "[5.2.0, )",
- "Spectre.Console": "[0.54.0, )",
+ "Spectre.Console": "[0.52.0, )",
"Stryker.Abstractions": "[1.0.0, )",
"Stryker.Configuration": "[1.0.0, )",
"Stryker.DataCollector": "[1.0.0, )",
@@ -886,7 +910,7 @@
"Stryker.RegexMutators": "[1.0.0, )",
"Stryker.TestRunner.VsTest": "[1.0.0, )",
"Stryker.Utilities": "[1.0.0, )",
- "TestableIO.System.IO.Abstractions.Wrappers": "[22.1.0, )"
+ "TestableIO.System.IO.Abstractions.Wrappers": "[22.0.16, )"
}
},
"stryker.abstractions": {
@@ -896,9 +920,9 @@
"DotNet.Glob": "[3.1.3, )",
"Microsoft.CodeAnalysis.CSharp": "[4.14.0, )",
"Microsoft.CodeAnalysis.Common": "[4.14.0, )",
- "Microsoft.TestPlatform.ObjectModel": "[18.0.1, )",
+ "Microsoft.TestPlatform.ObjectModel": "[17.14.1, )",
"Serilog": "[4.3.0, )",
- "TestableIO.System.IO.Abstractions.Wrappers": "[22.1.0, )"
+ "TestableIO.System.IO.Abstractions.Wrappers": "[22.0.16, )"
}
},
"stryker.configuration": {
@@ -915,8 +939,8 @@
"stryker.datacollector": {
"type": "Project",
"dependencies": {
- "Microsoft.TestPlatform.ObjectModel": "[18.0.1, )",
- "Microsoft.TestPlatform.Portable": "[18.0.1, )"
+ "Microsoft.TestPlatform.ObjectModel": "[17.14.1, )",
+ "Microsoft.TestPlatform.Portable": "[17.14.1, )"
}
},
"stryker.regexmutators": {
@@ -928,23 +952,23 @@
"stryker.testrunner": {
"type": "Project",
"dependencies": {
- "Microsoft.TestPlatform.ObjectModel": "[18.0.1, )",
+ "Microsoft.TestPlatform.ObjectModel": "[17.14.1, )",
"Stryker.Abstractions": "[1.0.0, )"
}
},
"stryker.testrunner.vstest": {
"type": "Project",
"dependencies": {
- "Microsoft.Extensions.Logging.Abstractions": "[10.0.0, )",
- "Microsoft.TestPlatform": "[18.0.1, )",
- "Microsoft.TestPlatform.ObjectModel": "[18.0.1, )",
- "Microsoft.TestPlatform.Portable": "[18.0.1, )",
- "Microsoft.TestPlatform.TranslationLayer": "[18.0.1, )",
+ "Microsoft.Extensions.Logging.Abstractions": "[9.0.10, )",
+ "Microsoft.TestPlatform": "[17.14.1, )",
+ "Microsoft.TestPlatform.ObjectModel": "[17.14.1, )",
+ "Microsoft.TestPlatform.Portable": "[17.14.1, )",
+ "Microsoft.TestPlatform.TranslationLayer": "[17.14.1, )",
"Stryker.Abstractions": "[1.0.0, )",
"Stryker.DataCollector": "[1.0.0, )",
"Stryker.TestRunner": "[1.0.0, )",
"Stryker.Utilities": "[1.0.0, )",
- "TestableIO.System.IO.Abstractions.Wrappers": "[22.1.0, )"
+ "TestableIO.System.IO.Abstractions.Wrappers": "[22.0.16, )"
}
},
"stryker.utilities": {
@@ -953,7 +977,7 @@
"Buildalyzer": "[7.1.0, )",
"Microsoft.CodeAnalysis.CSharp": "[4.14.0, )",
"Microsoft.CodeAnalysis.Common": "[4.14.0, )",
- "Microsoft.Extensions.Logging.Abstractions": "[10.0.0, )",
+ "Microsoft.Extensions.Logging.Abstractions": "[9.0.10, )",
"Mono.Cecil": "[0.11.6, )",
"ResXResourceReader.NetStandard": "[1.3.0, )",
"Stryker.Abstractions": "[1.0.0, )"
@@ -1048,53 +1072,62 @@
"Microsoft.CodeAnalysis.Common": "[4.0.0]"
}
},
+ "Microsoft.Extensions.DependencyInjection": {
+ "type": "CentralTransitive",
+ "requested": "[9.0.10, )",
+ "resolved": "9.0.10",
+ "contentHash": "iEtXCkNd5XhjNJAOb/wO4IhDRdLIE2CsPxZggZQWJ/q2+sa8dmEPC393nnsiqdH8/4KV8Xn25IzgKPR1UEQ0og==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.10"
+ }
+ },
"Microsoft.Extensions.Logging": {
"type": "CentralTransitive",
- "requested": "[10.0.0, )",
- "resolved": "10.0.0",
- "contentHash": "BStFkd5CcnEtarlcgYDBcFzGYCuuNMzPs02wN3WBsOFoYIEmYoUdAiU+au6opzoqfTYJsMTW00AeqDdnXH2CvA==",
+ "requested": "[9.0.10, )",
+ "resolved": "9.0.10",
+ "contentHash": "UBXHqE9vyptVhaFnT1R7YJKCve7TqVI10yjjUZBNGMlW2lZ4c031Slt9hxsOzWCzlpPxxIFyf1Yk4a6Iubxx7w==",
"dependencies": {
- "Microsoft.Extensions.DependencyInjection": "10.0.0",
- "Microsoft.Extensions.Logging.Abstractions": "10.0.0",
- "Microsoft.Extensions.Options": "10.0.0"
+ "Microsoft.Extensions.DependencyInjection": "9.0.10",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.10",
+ "Microsoft.Extensions.Options": "9.0.10"
}
},
"Microsoft.Extensions.Logging.Abstractions": {
"type": "CentralTransitive",
- "requested": "[10.0.0, )",
- "resolved": "10.0.0",
- "contentHash": "FU/IfjDfwaMuKr414SSQNTIti/69bHEMb+QKrskRb26oVqpx3lNFXMjs/RC9ZUuhBhcwDM2BwOgoMw+PZ+beqQ==",
+ "requested": "[9.0.10, )",
+ "resolved": "9.0.10",
+ "contentHash": "MFUPv/nN1rAQ19w43smm6bbf0JDYN/1HEPHoiMYY50pvDMFpglzWAuoTavByDmZq7UuhjaxwrET3joU69ZHoHQ==",
"dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0",
- "System.Diagnostics.DiagnosticSource": "10.0.0"
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.10",
+ "System.Diagnostics.DiagnosticSource": "9.0.10"
}
},
"Microsoft.TestPlatform": {
"type": "CentralTransitive",
- "requested": "[18.0.1, )",
- "resolved": "18.0.1",
- "contentHash": "j28I540VckZ/cBX3/dotFDIwjYjfqXrHJDTujLDqB0Udr4blVWnQR34QoFMbSnjLJ4yyUUP/y70UzRevVEd3Gw=="
+ "requested": "[17.14.1, )",
+ "resolved": "17.14.1",
+ "contentHash": "chV8QnyU0mY1i8kBG6UsfHMn7sTasloBKh+A9yuyRw760vDc1qKvFq1PAp3wujtTnX3WWwy49okuzrT2ZHJhfA=="
},
"Microsoft.TestPlatform.ObjectModel": {
"type": "CentralTransitive",
- "requested": "[18.0.1, )",
- "resolved": "18.0.1",
- "contentHash": "qT/mwMcLF9BieRkzOBPL2qCopl8hQu6A1P7JWAoj/FMu5i9vds/7cjbJ/LLtaiwWevWLAeD5v5wjQJ/l6jvhWQ==",
+ "requested": "[17.14.1, )",
+ "resolved": "17.14.1",
+ "contentHash": "xTP1W6Mi6SWmuxd3a+jj9G9UoC850WGwZUps1Wah9r1ZxgXhdJfj1QqDLJkFjHDCvN42qDL2Ps5KjQYWUU0zcQ==",
"dependencies": {
"System.Reflection.Metadata": "8.0.0"
}
},
"Microsoft.TestPlatform.Portable": {
"type": "CentralTransitive",
- "requested": "[18.0.1, )",
- "resolved": "18.0.1",
- "contentHash": "xo0LUgBPdPOGVeing0HtgSHlu59IlATDXxbqsJZkDDb9ErCJkC3Z/aOn01nMvsAxISrrP3DjutXzTh7DRG545w=="
+ "requested": "[17.14.1, )",
+ "resolved": "17.14.1",
+ "contentHash": "YiNhY7vP5IQnhCf8AHEaxvK85xG+4gpFDBvgx1nZhwxjt7yPz094K6i8JpFU4mgmO6T/gT3Q+ylfkpYFqtKkUw=="
},
"Microsoft.TestPlatform.TranslationLayer": {
"type": "CentralTransitive",
- "requested": "[18.0.1, )",
- "resolved": "18.0.1",
- "contentHash": "kkLbNqvR5I4QU4ImmYcAU6c34q5uTWNjKv8kHkZvnixFXHa/e6o8Oo8AwhL89OfJZ054V1IL0dlAU6Jmj5vt7w==",
+ "requested": "[17.14.1, )",
+ "resolved": "17.14.1",
+ "contentHash": "LvxCfuUqu1Xs3xAs2hPlLYnrezqdqu14swUuVyoGCywJ63dD+FRD2lLG/3nAXux4MAXClFtp2y5FiBvLgEAbdA==",
"dependencies": {
"NETStandard.Library": "2.0.0"
}
@@ -1122,17 +1155,17 @@
},
"NuGet.Frameworks": {
"type": "CentralTransitive",
- "requested": "[7.0.1, )",
- "resolved": "7.0.1",
- "contentHash": "dUDwg8VYTyT+ZbLdC7hUUHFF530HeRl4jcxclKJY0o96f3nv0eZvojXwjRkq2HKzuyRCcVD4T24aEF83CUmBzA=="
+ "requested": "[6.14.0, )",
+ "resolved": "6.14.0",
+ "contentHash": "xZ37J58DQAkVUX29qoMwla26iBYRScdcfSGNe1FIZjCX1tpafN9n7TinrkRxaJqYzW0D8Ob8a3eRSYhwEUauCA=="
},
"NuGet.Protocol": {
"type": "CentralTransitive",
- "requested": "[7.0.1, )",
- "resolved": "7.0.1",
- "contentHash": "bYPzTqgOSsXV8AxXXFCCPtAtlxwph0DVtdM8AlaKTGLClHDx7VAlL4cCIcVl2iEzQuG1uC79SvzllvKi1grcNw==",
+ "requested": "[6.14.0, )",
+ "resolved": "6.14.0",
+ "contentHash": "hYk9j/ZKErdiK0tFaqsrRtT5q+sJ2VjCUrgFCQG2wGhAlmb8YaBzYLOGDvRdFwuvTi5I+KRuVHPqhc010Np1Bg==",
"dependencies": {
- "NuGet.Packaging": "7.0.1"
+ "NuGet.Packaging": "6.14.0"
}
},
"ResXResourceReader.NetStandard": {
@@ -1149,11 +1182,11 @@
},
"Serilog.Extensions.Logging": {
"type": "CentralTransitive",
- "requested": "[10.0.0, )",
- "resolved": "10.0.0",
- "contentHash": "vx0kABKl2dWbBhhqAfTOk53/i8aV/5VaT3a6il9gn72Wqs2pM7EK2OB6No6xdqK2IaY6Zf9gdjLuK9BVa2rT+Q==",
+ "requested": "[9.0.2, )",
+ "resolved": "9.0.2",
+ "contentHash": "p8kk2McN6LxuQfLyCoOkL7+nJIhVKnV1WFUxAaGTQTQk0wySbgmCHe98j+xSQvIbYHtzKXROOE2G2R0TLwBfig==",
"dependencies": {
- "Microsoft.Extensions.Logging": "10.0.0",
+ "Microsoft.Extensions.Logging": "9.0.0",
"Serilog": "4.2.0"
}
},
@@ -1174,9 +1207,9 @@
},
"Serilog.Sinks.Console": {
"type": "CentralTransitive",
- "requested": "[6.1.1, )",
- "resolved": "6.1.1",
- "contentHash": "8jbqgjUyZlfCuSTaJk6lOca465OndqOz3KZP6Cryt/IqZYybyBu7GP0fE/AXBzrrQB3EBmQntBFAvMVz1COvAA==",
+ "requested": "[6.0.0, )",
+ "resolved": "6.0.0",
+ "contentHash": "fQGWqVMClCP2yEyTXPIinSr5c+CBGUvBybPxjAGcf7ctDhadFhrQw03Mv8rJ07/wR5PDfFjewf2LimvXCDzpbA==",
"dependencies": {
"Serilog": "4.0.0"
}
@@ -1193,9 +1226,9 @@
},
"Spectre.Console": {
"type": "CentralTransitive",
- "requested": "[0.54.0, )",
- "resolved": "0.54.0",
- "contentHash": "StDXCFayfy0yB1xzUHT2tgEpV1/HFTiS4JgsAQS49EYTfMixSwwucaQs/bIOCwXjWwIQTMuxjUIxcB5XsJkFJA=="
+ "requested": "[0.52.0, )",
+ "resolved": "0.52.0",
+ "contentHash": "bVe6b8mizSB4QAlfvKGWHIZbzpxtkCnK6taFUgrxbzPseiBNENi/36RTnKwqPJCHPimU5QG2vK6jd+JASQDugg=="
},
"Stryker.Regex.Parser": {
"type": "CentralTransitive",
@@ -1205,11 +1238,11 @@
},
"TestableIO.System.IO.Abstractions.Wrappers": {
"type": "CentralTransitive",
- "requested": "[22.1.0, )",
- "resolved": "22.1.0",
- "contentHash": "IsW3jQqIiTN4GwdWFx+dzgRL5XR75UDTFVGuuIackPf2d7eH0KKyrx4wuIoASa1XnS9zhgLP39FKwJq6nbbx1w==",
+ "requested": "[22.0.16, )",
+ "resolved": "22.0.16",
+ "contentHash": "QUX0TLMvnRLEgvuMRotrZKN9eCdX4yzK7HJCaPj17T4jvUf+G4XifdLpB5wmRct2zKlscYzpWMOmHjKabse3yw==",
"dependencies": {
- "Testably.Abstractions.FileSystem.Interface": "10.0.0"
+ "Testably.Abstractions.FileSystem.Interface": "9.0.0"
}
},
"YamlDotNet": {
diff --git a/src/Stryker.CLI/Stryker.CLI/Infrastructure/ServiceCollectionExtensions.cs b/src/Stryker.CLI/Stryker.CLI/Infrastructure/ServiceCollectionExtensions.cs
new file mode 100644
index 0000000000..45ef0905c6
--- /dev/null
+++ b/src/Stryker.CLI/Stryker.CLI/Infrastructure/ServiceCollectionExtensions.cs
@@ -0,0 +1,24 @@
+using System.IO.Abstractions;
+using Microsoft.Extensions.DependencyInjection;
+using Spectre.Console;
+using Stryker.CLI.Clients;
+using Stryker.CLI.Logging;
+using Stryker.Configuration;
+
+namespace Stryker.CLI;
+
+public static class ServiceCollectionExtensions
+{
+ public static IServiceCollection AddStrykerCli(this IServiceCollection services)
+ {
+ // CLI services
+ services.AddTransient();
+ services.AddSingleton();
+ services.AddSingleton();
+ services.AddSingleton();
+ services.AddSingleton(AnsiConsole.Console);
+ services.AddSingleton();
+
+ return services;
+ }
+}
diff --git a/src/Stryker.CLI/Stryker.CLI/Logging/ApplicationLogging.cs b/src/Stryker.CLI/Stryker.CLI/Logging/ApplicationLogging.cs
index 6cae65c57c..d06d67680a 100644
--- a/src/Stryker.CLI/Stryker.CLI/Logging/ApplicationLogging.cs
+++ b/src/Stryker.CLI/Stryker.CLI/Logging/ApplicationLogging.cs
@@ -22,6 +22,10 @@ public static void ConfigureLogger(LogEventLevel logLevel, bool logToFile, bool
LoggerFactory.AddFile(Path.Combine(outputPath, "logs", "log-{Date}.txt"), traceToFile ? MSLogLevel.Trace : MSLogLevel.Debug);
}
+ // Set the Utilities ApplicationLogging factory to the same instance
+ // This ensures that code in Stryker.Options and other projects can access the configured logger
+ Stryker.Utilities.Logging.ApplicationLogging.LoggerFactory = LoggerFactory;
+
// When stryker log level is debug or trace, set LibGit2Sharp loglevel
if (logLevel >= LogEventLevel.Information) return; // LibGit2Sharp does not handle LogEventLevel.None properly.
diff --git a/src/Stryker.CLI/Stryker.CLI/Program.cs b/src/Stryker.CLI/Stryker.CLI/Program.cs
index 4dcd06b2d8..f4f87969de 100644
--- a/src/Stryker.CLI/Stryker.CLI/Program.cs
+++ b/src/Stryker.CLI/Stryker.CLI/Program.cs
@@ -1,6 +1,10 @@
+using Microsoft.Extensions.DependencyInjection;
+using Microsoft.Extensions.Logging;
using Spectre.Console;
using Stryker.Abstractions.Exceptions;
+using Stryker.CLI.Logging;
using Stryker.Configuration;
+using Stryker.Core.Infrastructure;
namespace Stryker.CLI;
@@ -10,7 +14,14 @@ public static int Main(string[] args)
{
try
{
- var app = new StrykerCli();
+ // Build DI container
+ var services = new ServiceCollection()
+ .AddLogging()
+ .AddStrykerCore()
+ .AddStrykerCli()
+ .BuildServiceProvider();
+
+ var app = services.GetRequiredService();
return app.Run(args);
}
catch (NoTestProjectsException exception)
diff --git a/src/Stryker.CLI/Stryker.CLI/Stryker.CLI.csproj b/src/Stryker.CLI/Stryker.CLI/Stryker.CLI.csproj
index 0323d279a0..08d9d40120 100644
--- a/src/Stryker.CLI/Stryker.CLI/Stryker.CLI.csproj
+++ b/src/Stryker.CLI/Stryker.CLI/Stryker.CLI.csproj
@@ -6,6 +6,8 @@
Exe
true
dotnet-stryker
+ portable
+ true
@@ -29,6 +31,7 @@
+
diff --git a/src/Stryker.CLI/Stryker.CLI/StrykerCLI.cs b/src/Stryker.CLI/Stryker.CLI/StrykerCLI.cs
index fe22f8d5a0..65af424413 100644
--- a/src/Stryker.CLI/Stryker.CLI/StrykerCLI.cs
+++ b/src/Stryker.CLI/Stryker.CLI/StrykerCLI.cs
@@ -75,19 +75,20 @@ public class StrykerCli
public int ExitCode { get; private set; } = ExitCodes.Success;
- public StrykerCli(IStrykerRunner stryker = null,
- IConfigBuilder configReader = null,
- ILoggingInitializer loggingInitializer = null,
- IStrykerNugetFeedClient nugetClient = null,
- IAnsiConsole console = null,
- IFileSystem fileSystem = null)
+ public StrykerCli(
+ IStrykerRunner stryker,
+ IConfigBuilder configReader,
+ ILoggingInitializer loggingInitializer,
+ IStrykerNugetFeedClient nugetClient,
+ IAnsiConsole console,
+ IFileSystem fileSystem)
{
- _stryker = stryker ?? new StrykerRunner();
- _configReader = configReader ?? new ConfigBuilder();
- _loggingInitializer = loggingInitializer ?? new LoggingInitializer();
- _nugetClient = nugetClient ?? new StrykerNugetFeedClient();
- _console = console ?? AnsiConsole.Console;
- _fileSystem = fileSystem ?? new FileSystem();
+ _stryker = stryker ?? throw new ArgumentNullException(nameof(stryker));
+ _configReader = configReader ?? throw new ArgumentNullException(nameof(configReader));
+ _loggingInitializer = loggingInitializer ?? throw new ArgumentNullException(nameof(loggingInitializer));
+ _nugetClient = nugetClient ?? throw new ArgumentNullException(nameof(nugetClient));
+ _console = console ?? throw new ArgumentNullException(nameof(console));
+ _fileSystem = fileSystem ?? throw new ArgumentNullException(nameof(fileSystem));
}
///
@@ -149,12 +150,12 @@ public int Run(string[] args)
private void RunStryker(IStrykerInputs inputs)
{
- var result = _stryker.RunMutationTest(inputs, ApplicationLogging.LoggerFactory);
+ var result = _stryker.RunMutationTest(inputs);
- HandleStrykerRunResult(inputs, result);
+ HandleStrykerRunResult(result);
}
- private void HandleStrykerRunResult(IStrykerInputs inputs, StrykerRunResult result)
+ private void HandleStrykerRunResult(StrykerRunResult result)
{
var logger = ApplicationLogging.LoggerFactory.CreateLogger();
@@ -169,7 +170,7 @@ private void HandleStrykerRunResult(IStrykerInputs inputs, StrykerRunResult resu
if (result.ScoreIsLowerThanThresholdBreak())
{
- var thresholdBreak = (double)inputs.ValidateAll().Thresholds.Break / 100;
+ var thresholdBreak = (double)result.Options.Thresholds.Break / 100;
logger.LogWarning("Final mutation score is below threshold break. Crashing...");
_console.WriteLine();
diff --git a/src/Stryker.CLI/Stryker.CLI/packages.lock.json b/src/Stryker.CLI/Stryker.CLI/packages.lock.json
index 1172502aa4..9be94be4f6 100644
--- a/src/Stryker.CLI/Stryker.CLI/packages.lock.json
+++ b/src/Stryker.CLI/Stryker.CLI/packages.lock.json
@@ -17,13 +17,22 @@
"System.ComponentModel.Annotations": "5.0.0"
}
},
+ "Microsoft.Extensions.DependencyInjection": {
+ "type": "Direct",
+ "requested": "[9.0.10, )",
+ "resolved": "9.0.10",
+ "contentHash": "iEtXCkNd5XhjNJAOb/wO4IhDRdLIE2CsPxZggZQWJ/q2+sa8dmEPC393nnsiqdH8/4KV8Xn25IzgKPR1UEQ0og==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.10"
+ }
+ },
"NuGet.Protocol": {
"type": "Direct",
- "requested": "[7.0.1, )",
- "resolved": "7.0.1",
- "contentHash": "bYPzTqgOSsXV8AxXXFCCPtAtlxwph0DVtdM8AlaKTGLClHDx7VAlL4cCIcVl2iEzQuG1uC79SvzllvKi1grcNw==",
+ "requested": "[6.14.0, )",
+ "resolved": "6.14.0",
+ "contentHash": "hYk9j/ZKErdiK0tFaqsrRtT5q+sJ2VjCUrgFCQG2wGhAlmb8YaBzYLOGDvRdFwuvTi5I+KRuVHPqhc010Np1Bg==",
"dependencies": {
- "NuGet.Packaging": "7.0.1"
+ "NuGet.Packaging": "6.14.0"
}
},
"YamlDotNet": {
@@ -66,14 +75,6 @@
"resolved": "8.0.0",
"contentHash": "3WA9q9yVqJp222P3x1wYIGDAkpjAku0TMUaaQV22g6L67AI0LdOIrVS7Ht2vJfLHGSPVuqN94vIr15qn+HEkHw=="
},
- "Microsoft.Bcl.Cryptography": {
- "type": "Transitive",
- "resolved": "9.0.6",
- "contentHash": "QY+zvyOMPoa883T3JB+M9sQvYBfGHidptsVhD9pWn52fS3+xaUSIaf5Fcw8WIoyP6cx3K5vHMcvOdDz7NehZOA==",
- "dependencies": {
- "System.Formats.Asn1": "9.0.6"
- }
- },
"Microsoft.Build": {
"type": "Transitive",
"resolved": "17.10.4",
@@ -137,32 +138,24 @@
"Microsoft.Extensions.Configuration.Abstractions": "6.0.0"
}
},
- "Microsoft.Extensions.DependencyInjection": {
- "type": "Transitive",
- "resolved": "10.0.0",
- "contentHash": "f0RBabswJq+gRu5a+hWIobrLWiUYPKMhCD9WO3sYBAdSy3FFH14LMvLVFZc2kPSCimBLxSuitUhsd6tb0TAY6A==",
- "dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0"
- }
- },
"Microsoft.Extensions.DependencyInjection.Abstractions": {
"type": "Transitive",
- "resolved": "10.0.0",
- "contentHash": "L3AdmZ1WOK4XXT5YFPEwyt0ep6l8lGIPs7F5OOBZc77Zqeo01Of7XXICy47628sdVl0v/owxYJTe86DTgFwKCA=="
+ "resolved": "9.0.10",
+ "contentHash": "r9waLiOPe9ZF1PvzUT+RDoHvpMmY8MW+lb4lqjYGObwKpnyPMLI3odVvlmshwuZcdoHynsGWOrCPA0hxZ63lIA=="
},
"Microsoft.Extensions.Options": {
"type": "Transitive",
- "resolved": "10.0.0",
- "contentHash": "8oCAgXOow5XDrY9HaXX1QmH3ORsyZO/ANVHBlhLyCeWTH5Sg4UuqZeOTWJi6484M+LqSx0RqQXDJtdYy2BNiLQ==",
+ "resolved": "9.0.10",
+ "contentHash": "zMNABt8eBv0B0XrWjFy9nZNgddavaOeq3ZdaD5IlHhRH65MrU7HM+Hd8GjWE3e2VDGFPZFfSAc6XVXC17f9fOA==",
"dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0",
- "Microsoft.Extensions.Primitives": "10.0.0"
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.10",
+ "Microsoft.Extensions.Primitives": "9.0.10"
}
},
"Microsoft.Extensions.Primitives": {
"type": "Transitive",
- "resolved": "10.0.0",
- "contentHash": "inRnbpCS0nwO/RuoZIAqxQUuyjaknOOnCEZB55KSMMjRhl0RQDttSmLSGsUJN3RQ3ocf5NDLFd2mOQViHqMK5w=="
+ "resolved": "9.0.10",
+ "contentHash": "3pl8D1O5ZwMpDkZAT2uXrhQ6NipkwEgDLMFuURiHTf72TvkoMP61QYH3Vk1yrzVHnHBdNZk3cQACz8Zc7YGNhQ=="
},
"Microsoft.NET.StringTools": {
"type": "Transitive",
@@ -211,36 +204,37 @@
},
"NuGet.Common": {
"type": "Transitive",
- "resolved": "7.0.1",
- "contentHash": "AegMASeOhhm2flGk53b/YtINs2H+zKMnV5fTs3rRo08JMQ3gqrbJUSjiEMOKt5d541IhVA+pHDWVsDCZ+5g7Fg==",
+ "resolved": "6.14.0",
+ "contentHash": "E+IyoDez4kPrjNPYp41fScowTuSjGifXfjrtU9p9XlQDOGig6vrikQDCMeo6BT6YmT9vUZ+Tb1CX8ru8z0bkNg==",
"dependencies": {
- "NuGet.Frameworks": "7.0.1"
+ "NuGet.Frameworks": "6.14.0",
+ "System.Collections.Immutable": "8.0.0"
}
},
"NuGet.Configuration": {
"type": "Transitive",
- "resolved": "7.0.1",
- "contentHash": "En8aIvZywOmgi+Q2Tv7VUELSYc3OCTwmzItr2N3j5pVIBQE92HbOa1b4+fJJbl9X/rAOkNon3fxjwYeqrdMRrw==",
+ "resolved": "6.14.0",
+ "contentHash": "YwoF+Nm0IGdNP/LQ97xysCQlhy4oWIzD4oGcbvz5bQGogPrqn/5lSGwP8llmVv+zfJ6tZZDAT9vh4Q+gH0Aqqg==",
"dependencies": {
- "NuGet.Common": "7.0.1",
- "System.Security.Cryptography.ProtectedData": "9.0.6"
+ "NuGet.Common": "6.14.0",
+ "System.Security.Cryptography.ProtectedData": "4.4.0"
}
},
"NuGet.Packaging": {
"type": "Transitive",
- "resolved": "7.0.1",
- "contentHash": "hpC6Fx5VlMa42cSZDQ10TKDFHLoMpa8NbDwYSnCiGd4IPiG9+5ywWuxHjVbYYA7/PmJry5hs1GyJjvHV8bQmLw==",
+ "resolved": "6.14.0",
+ "contentHash": "BpQlGpkuAhrh6x00mGvwK13a5c30vX3FYQbWI11LIyXl/nWmoOQSZrB3yEAh9ihibeGo8SunWZBGXvkkJUxbEg==",
"dependencies": {
"Newtonsoft.Json": "13.0.3",
- "NuGet.Configuration": "7.0.1",
- "NuGet.Versioning": "7.0.1",
- "System.Security.Cryptography.Pkcs": "9.0.6"
+ "NuGet.Configuration": "6.14.0",
+ "NuGet.Versioning": "6.14.0",
+ "System.Security.Cryptography.Pkcs": "6.0.4"
}
},
"NuGet.Versioning": {
"type": "Transitive",
- "resolved": "7.0.1",
- "contentHash": "tu68LnZqiLM/VyLQzPRqedopMi/M+5/6JqwB2Xkd0AWXRpUWewkVv77asVB7wgjMPVzQFK2sBy7AuxV49UzuvQ=="
+ "resolved": "6.14.0",
+ "contentHash": "4v4blkhCv8mpKtfx+z0G/X0daVCzdIaHSC51GkUspugi5JIMn2Bo8xm5PdZYF0U68gOBfz/+aPWMnpRd85Jbow=="
},
"runtime.native.System": {
"type": "Transitive",
@@ -338,8 +332,8 @@
},
"System.Diagnostics.DiagnosticSource": {
"type": "Transitive",
- "resolved": "10.0.0",
- "contentHash": "0KdBK+h7G13PuOSC2R/DalAoFMvdYMznvGRuICtkdcUMXgl/gYXsG6z4yUvTxHSMACorWgHCU1Faq0KUHU6yAQ=="
+ "resolved": "9.0.10",
+ "contentHash": "uIpKiKp7EWlYZBK71jYP+maGYjDY9YTi/FxBlZoqDzM1ZHZB7gLqUm4jHvRFwaKfR1/Lrt2rQih9LGPIKyNEow=="
},
"System.Diagnostics.EventLog": {
"type": "Transitive",
@@ -348,8 +342,8 @@
},
"System.Formats.Asn1": {
"type": "Transitive",
- "resolved": "9.0.6",
- "contentHash": "8LbKs3WVqyDSszFZJA9Uxg9z+C6WbPbFTSPm/HjFEsWx49XWs0ueqaAKPWncvFJ8yl4H4C/RTnUMhCKoXkddkg=="
+ "resolved": "8.0.0",
+ "contentHash": "AJukBuLoe3QeAF+mfaRKQb2dgyrvt340iMBHYv+VdBzCUM06IxGlvl0o/uPOS7lHnXPN6u8fFRHSHudx5aTi8w=="
},
"System.Globalization": {
"type": "Transitive",
@@ -531,17 +525,16 @@
},
"System.Security.Cryptography.Pkcs": {
"type": "Transitive",
- "resolved": "9.0.6",
- "contentHash": "Gny8p2mX0jc5rjh+PA4Gx5GG66sj2C+e+ro7+j/3IsKT/bmQ84tGRV+XKaG+5/CTCdwkSSKDWEQ1rJd0J5jE0Q==",
+ "resolved": "8.0.0",
+ "contentHash": "ULmp3xoOwNYjOYp4JZ2NK/6NdTgiN1GQXzVVN1njQ7LOZ0d0B9vyMnhyqbIi9Qw4JXj1JgCsitkTShboHRx7Eg==",
"dependencies": {
- "Microsoft.Bcl.Cryptography": "9.0.6",
- "System.Formats.Asn1": "9.0.6"
+ "System.Formats.Asn1": "8.0.0"
}
},
"System.Security.Cryptography.ProtectedData": {
"type": "Transitive",
- "resolved": "9.0.6",
- "contentHash": "yErfw/3pZkJE/VKza/Cm5idTpIKOy/vsmVi59Ta5SruPVtubzxb8CtnE8tyUpzs5pr0Y28GUFfSVzAhCLN3F/Q=="
+ "resolved": "8.0.0",
+ "contentHash": "+TUFINV2q2ifyXauQXRwy4CiBhqvDEDZeVJU7qfxya4aRYOKzVBpN+4acx25VcPB9ywUN6C0n8drWl110PhZEg=="
},
"System.Security.Cryptography.Xml": {
"type": "Transitive",
@@ -632,8 +625,8 @@
},
"Testably.Abstractions.FileSystem.Interface": {
"type": "Transitive",
- "resolved": "10.0.0",
- "contentHash": "tZOXFLGjkh8TxgMgKeEcM2HAlz9DwndGl6TFLo6ISHcszFX3FkuPMrtVbmqVjhooWNXrgJ/a9cH9ym5MZL1LAg=="
+ "resolved": "9.0.0",
+ "contentHash": "uksk86YlnzAdyfVNu3wICU0X5iXVe9LF7Q3UkngNliHWEvM5gvAlOUr+jmd9JwmbJWISH5+i1vyXE02lEVz7WQ=="
},
"stryker": {
"type": "Project",
@@ -645,20 +638,21 @@
"LibGit2Sharp": "[0.31.0, )",
"Microsoft.CodeAnalysis.CSharp": "[4.14.0, )",
"Microsoft.CodeAnalysis.Common": "[4.14.0, )",
- "Microsoft.Extensions.Logging": "[10.0.0, )",
- "Microsoft.TestPlatform": "[18.0.1, )",
- "Microsoft.TestPlatform.ObjectModel": "[18.0.1, )",
- "Microsoft.TestPlatform.Portable": "[18.0.1, )",
- "Microsoft.TestPlatform.TranslationLayer": "[18.0.1, )",
+ "Microsoft.Extensions.DependencyInjection": "[9.0.10, )",
+ "Microsoft.Extensions.Logging": "[9.0.10, )",
+ "Microsoft.TestPlatform": "[17.14.1, )",
+ "Microsoft.TestPlatform.ObjectModel": "[17.14.1, )",
+ "Microsoft.TestPlatform.Portable": "[17.14.1, )",
+ "Microsoft.TestPlatform.TranslationLayer": "[17.14.1, )",
"Microsoft.Web.LibraryManager.Build": "[3.0.71, )",
"Mono.Cecil": "[0.11.6, )",
- "NuGet.Frameworks": "[7.0.1, )",
+ "NuGet.Frameworks": "[6.14.0, )",
"Serilog": "[4.3.0, )",
- "Serilog.Extensions.Logging": "[10.0.0, )",
+ "Serilog.Extensions.Logging": "[9.0.2, )",
"Serilog.Extensions.Logging.File": "[3.0.0, )",
- "Serilog.Sinks.Console": "[6.1.1, )",
+ "Serilog.Sinks.Console": "[6.0.0, )",
"ShellProgressBar": "[5.2.0, )",
- "Spectre.Console": "[0.54.0, )",
+ "Spectre.Console": "[0.52.0, )",
"Stryker.Abstractions": "[1.0.0, )",
"Stryker.Configuration": "[1.0.0, )",
"Stryker.DataCollector": "[1.0.0, )",
@@ -666,7 +660,7 @@
"Stryker.RegexMutators": "[1.0.0, )",
"Stryker.TestRunner.VsTest": "[1.0.0, )",
"Stryker.Utilities": "[1.0.0, )",
- "TestableIO.System.IO.Abstractions.Wrappers": "[22.1.0, )"
+ "TestableIO.System.IO.Abstractions.Wrappers": "[22.0.16, )"
}
},
"stryker.abstractions": {
@@ -676,9 +670,9 @@
"DotNet.Glob": "[3.1.3, )",
"Microsoft.CodeAnalysis.CSharp": "[4.14.0, )",
"Microsoft.CodeAnalysis.Common": "[4.14.0, )",
- "Microsoft.TestPlatform.ObjectModel": "[18.0.1, )",
+ "Microsoft.TestPlatform.ObjectModel": "[17.14.1, )",
"Serilog": "[4.3.0, )",
- "TestableIO.System.IO.Abstractions.Wrappers": "[22.1.0, )"
+ "TestableIO.System.IO.Abstractions.Wrappers": "[22.0.16, )"
}
},
"stryker.configuration": {
@@ -695,8 +689,8 @@
"stryker.datacollector": {
"type": "Project",
"dependencies": {
- "Microsoft.TestPlatform.ObjectModel": "[18.0.1, )",
- "Microsoft.TestPlatform.Portable": "[18.0.1, )"
+ "Microsoft.TestPlatform.ObjectModel": "[17.14.1, )",
+ "Microsoft.TestPlatform.Portable": "[17.14.1, )"
}
},
"stryker.regexmutators": {
@@ -708,23 +702,23 @@
"stryker.testrunner": {
"type": "Project",
"dependencies": {
- "Microsoft.TestPlatform.ObjectModel": "[18.0.1, )",
+ "Microsoft.TestPlatform.ObjectModel": "[17.14.1, )",
"Stryker.Abstractions": "[1.0.0, )"
}
},
"stryker.testrunner.vstest": {
"type": "Project",
"dependencies": {
- "Microsoft.Extensions.Logging.Abstractions": "[10.0.0, )",
- "Microsoft.TestPlatform": "[18.0.1, )",
- "Microsoft.TestPlatform.ObjectModel": "[18.0.1, )",
- "Microsoft.TestPlatform.Portable": "[18.0.1, )",
- "Microsoft.TestPlatform.TranslationLayer": "[18.0.1, )",
+ "Microsoft.Extensions.Logging.Abstractions": "[9.0.10, )",
+ "Microsoft.TestPlatform": "[17.14.1, )",
+ "Microsoft.TestPlatform.ObjectModel": "[17.14.1, )",
+ "Microsoft.TestPlatform.Portable": "[17.14.1, )",
+ "Microsoft.TestPlatform.TranslationLayer": "[17.14.1, )",
"Stryker.Abstractions": "[1.0.0, )",
"Stryker.DataCollector": "[1.0.0, )",
"Stryker.TestRunner": "[1.0.0, )",
"Stryker.Utilities": "[1.0.0, )",
- "TestableIO.System.IO.Abstractions.Wrappers": "[22.1.0, )"
+ "TestableIO.System.IO.Abstractions.Wrappers": "[22.0.16, )"
}
},
"stryker.utilities": {
@@ -733,7 +727,7 @@
"Buildalyzer": "[7.1.0, )",
"Microsoft.CodeAnalysis.CSharp": "[4.14.0, )",
"Microsoft.CodeAnalysis.Common": "[4.14.0, )",
- "Microsoft.Extensions.Logging.Abstractions": "[10.0.0, )",
+ "Microsoft.Extensions.Logging.Abstractions": "[9.0.10, )",
"Mono.Cecil": "[0.11.6, )",
"ResXResourceReader.NetStandard": "[1.3.0, )",
"Stryker.Abstractions": "[1.0.0, )"
@@ -821,51 +815,51 @@
},
"Microsoft.Extensions.Logging": {
"type": "CentralTransitive",
- "requested": "[10.0.0, )",
- "resolved": "10.0.0",
- "contentHash": "BStFkd5CcnEtarlcgYDBcFzGYCuuNMzPs02wN3WBsOFoYIEmYoUdAiU+au6opzoqfTYJsMTW00AeqDdnXH2CvA==",
+ "requested": "[9.0.10, )",
+ "resolved": "9.0.10",
+ "contentHash": "UBXHqE9vyptVhaFnT1R7YJKCve7TqVI10yjjUZBNGMlW2lZ4c031Slt9hxsOzWCzlpPxxIFyf1Yk4a6Iubxx7w==",
"dependencies": {
- "Microsoft.Extensions.DependencyInjection": "10.0.0",
- "Microsoft.Extensions.Logging.Abstractions": "10.0.0",
- "Microsoft.Extensions.Options": "10.0.0"
+ "Microsoft.Extensions.DependencyInjection": "9.0.10",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.10",
+ "Microsoft.Extensions.Options": "9.0.10"
}
},
"Microsoft.Extensions.Logging.Abstractions": {
"type": "CentralTransitive",
- "requested": "[10.0.0, )",
- "resolved": "10.0.0",
- "contentHash": "FU/IfjDfwaMuKr414SSQNTIti/69bHEMb+QKrskRb26oVqpx3lNFXMjs/RC9ZUuhBhcwDM2BwOgoMw+PZ+beqQ==",
+ "requested": "[9.0.10, )",
+ "resolved": "9.0.10",
+ "contentHash": "MFUPv/nN1rAQ19w43smm6bbf0JDYN/1HEPHoiMYY50pvDMFpglzWAuoTavByDmZq7UuhjaxwrET3joU69ZHoHQ==",
"dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0",
- "System.Diagnostics.DiagnosticSource": "10.0.0"
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.10",
+ "System.Diagnostics.DiagnosticSource": "9.0.10"
}
},
"Microsoft.TestPlatform": {
"type": "CentralTransitive",
- "requested": "[18.0.1, )",
- "resolved": "18.0.1",
- "contentHash": "j28I540VckZ/cBX3/dotFDIwjYjfqXrHJDTujLDqB0Udr4blVWnQR34QoFMbSnjLJ4yyUUP/y70UzRevVEd3Gw=="
+ "requested": "[17.14.1, )",
+ "resolved": "17.14.1",
+ "contentHash": "chV8QnyU0mY1i8kBG6UsfHMn7sTasloBKh+A9yuyRw760vDc1qKvFq1PAp3wujtTnX3WWwy49okuzrT2ZHJhfA=="
},
"Microsoft.TestPlatform.ObjectModel": {
"type": "CentralTransitive",
- "requested": "[18.0.1, )",
- "resolved": "18.0.1",
- "contentHash": "qT/mwMcLF9BieRkzOBPL2qCopl8hQu6A1P7JWAoj/FMu5i9vds/7cjbJ/LLtaiwWevWLAeD5v5wjQJ/l6jvhWQ==",
+ "requested": "[17.14.1, )",
+ "resolved": "17.14.1",
+ "contentHash": "xTP1W6Mi6SWmuxd3a+jj9G9UoC850WGwZUps1Wah9r1ZxgXhdJfj1QqDLJkFjHDCvN42qDL2Ps5KjQYWUU0zcQ==",
"dependencies": {
"System.Reflection.Metadata": "8.0.0"
}
},
"Microsoft.TestPlatform.Portable": {
"type": "CentralTransitive",
- "requested": "[18.0.1, )",
- "resolved": "18.0.1",
- "contentHash": "xo0LUgBPdPOGVeing0HtgSHlu59IlATDXxbqsJZkDDb9ErCJkC3Z/aOn01nMvsAxISrrP3DjutXzTh7DRG545w=="
+ "requested": "[17.14.1, )",
+ "resolved": "17.14.1",
+ "contentHash": "YiNhY7vP5IQnhCf8AHEaxvK85xG+4gpFDBvgx1nZhwxjt7yPz094K6i8JpFU4mgmO6T/gT3Q+ylfkpYFqtKkUw=="
},
"Microsoft.TestPlatform.TranslationLayer": {
"type": "CentralTransitive",
- "requested": "[18.0.1, )",
- "resolved": "18.0.1",
- "contentHash": "kkLbNqvR5I4QU4ImmYcAU6c34q5uTWNjKv8kHkZvnixFXHa/e6o8Oo8AwhL89OfJZ054V1IL0dlAU6Jmj5vt7w==",
+ "requested": "[17.14.1, )",
+ "resolved": "17.14.1",
+ "contentHash": "LvxCfuUqu1Xs3xAs2hPlLYnrezqdqu14swUuVyoGCywJ63dD+FRD2lLG/3nAXux4MAXClFtp2y5FiBvLgEAbdA==",
"dependencies": {
"NETStandard.Library": "2.0.0"
}
@@ -884,9 +878,9 @@
},
"NuGet.Frameworks": {
"type": "CentralTransitive",
- "requested": "[7.0.1, )",
- "resolved": "7.0.1",
- "contentHash": "dUDwg8VYTyT+ZbLdC7hUUHFF530HeRl4jcxclKJY0o96f3nv0eZvojXwjRkq2HKzuyRCcVD4T24aEF83CUmBzA=="
+ "requested": "[6.14.0, )",
+ "resolved": "6.14.0",
+ "contentHash": "xZ37J58DQAkVUX29qoMwla26iBYRScdcfSGNe1FIZjCX1tpafN9n7TinrkRxaJqYzW0D8Ob8a3eRSYhwEUauCA=="
},
"ResXResourceReader.NetStandard": {
"type": "CentralTransitive",
@@ -902,11 +896,11 @@
},
"Serilog.Extensions.Logging": {
"type": "CentralTransitive",
- "requested": "[10.0.0, )",
- "resolved": "10.0.0",
- "contentHash": "vx0kABKl2dWbBhhqAfTOk53/i8aV/5VaT3a6il9gn72Wqs2pM7EK2OB6No6xdqK2IaY6Zf9gdjLuK9BVa2rT+Q==",
+ "requested": "[9.0.2, )",
+ "resolved": "9.0.2",
+ "contentHash": "p8kk2McN6LxuQfLyCoOkL7+nJIhVKnV1WFUxAaGTQTQk0wySbgmCHe98j+xSQvIbYHtzKXROOE2G2R0TLwBfig==",
"dependencies": {
- "Microsoft.Extensions.Logging": "10.0.0",
+ "Microsoft.Extensions.Logging": "9.0.0",
"Serilog": "4.2.0"
}
},
@@ -927,9 +921,9 @@
},
"Serilog.Sinks.Console": {
"type": "CentralTransitive",
- "requested": "[6.1.1, )",
- "resolved": "6.1.1",
- "contentHash": "8jbqgjUyZlfCuSTaJk6lOca465OndqOz3KZP6Cryt/IqZYybyBu7GP0fE/AXBzrrQB3EBmQntBFAvMVz1COvAA==",
+ "requested": "[6.0.0, )",
+ "resolved": "6.0.0",
+ "contentHash": "fQGWqVMClCP2yEyTXPIinSr5c+CBGUvBybPxjAGcf7ctDhadFhrQw03Mv8rJ07/wR5PDfFjewf2LimvXCDzpbA==",
"dependencies": {
"Serilog": "4.0.0"
}
@@ -946,9 +940,9 @@
},
"Spectre.Console": {
"type": "CentralTransitive",
- "requested": "[0.54.0, )",
- "resolved": "0.54.0",
- "contentHash": "StDXCFayfy0yB1xzUHT2tgEpV1/HFTiS4JgsAQS49EYTfMixSwwucaQs/bIOCwXjWwIQTMuxjUIxcB5XsJkFJA=="
+ "requested": "[0.52.0, )",
+ "resolved": "0.52.0",
+ "contentHash": "bVe6b8mizSB4QAlfvKGWHIZbzpxtkCnK6taFUgrxbzPseiBNENi/36RTnKwqPJCHPimU5QG2vK6jd+JASQDugg=="
},
"Stryker.Regex.Parser": {
"type": "CentralTransitive",
@@ -958,11 +952,11 @@
},
"TestableIO.System.IO.Abstractions.Wrappers": {
"type": "CentralTransitive",
- "requested": "[22.1.0, )",
- "resolved": "22.1.0",
- "contentHash": "IsW3jQqIiTN4GwdWFx+dzgRL5XR75UDTFVGuuIackPf2d7eH0KKyrx4wuIoASa1XnS9zhgLP39FKwJq6nbbx1w==",
+ "requested": "[22.0.16, )",
+ "resolved": "22.0.16",
+ "contentHash": "QUX0TLMvnRLEgvuMRotrZKN9eCdX4yzK7HJCaPj17T4jvUf+G4XifdLpB5wmRct2zKlscYzpWMOmHjKabse3yw==",
"dependencies": {
- "Testably.Abstractions.FileSystem.Interface": "10.0.0"
+ "Testably.Abstractions.FileSystem.Interface": "9.0.0"
}
}
}
diff --git a/src/Stryker.Core/Stryker.Core.UnitTest/Compiling/CSharpCompilingProcessTests.cs b/src/Stryker.Core/Stryker.Core.UnitTest/Compiling/CSharpCompilingProcessTests.cs
index 172850410f..8b1369714b 100644
--- a/src/Stryker.Core/Stryker.Core.UnitTest/Compiling/CSharpCompilingProcessTests.cs
+++ b/src/Stryker.Core/Stryker.Core.UnitTest/Compiling/CSharpCompilingProcessTests.cs
@@ -539,8 +539,8 @@ private static IEnumerable MutateAndCompileSource(string sourceFile)
MutationLevel = MutationLevel.Complete,
OptimizationMode = OptimizationModes.CoverageBasedTest,
};
- var process = new CsharpMutationProcess(fileSystem, options);
- process.Mutate(input);
+ var process = new CsharpMutationProcess(fileSystem, TestLoggerFactory.CreateLogger());
+ process.Mutate(input, options);
var projectContentsMutants = input.SourceProjectInfo.ProjectContents.Mutants;
return projectContentsMutants;
diff --git a/src/Stryker.Core/Stryker.Core.UnitTest/Initialisation/InitialBuildProcessTests.cs b/src/Stryker.Core/Stryker.Core.UnitTest/Initialisation/InitialBuildProcessTests.cs
index 2260e7b187..20aa3c2c54 100644
--- a/src/Stryker.Core/Stryker.Core.UnitTest/Initialisation/InitialBuildProcessTests.cs
+++ b/src/Stryker.Core/Stryker.Core.UnitTest/Initialisation/InitialBuildProcessTests.cs
@@ -28,7 +28,7 @@ public void InitialBuildProcess_ShouldThrowStrykerInputExceptionOnFail()
processMock.SetupProcessMockToReturn("", 1);
- var target = new InitialBuildProcess(processMock.Object, _mockFileSystem);
+ var target = new InitialBuildProcess(processMock.Object, _mockFileSystem, TestLoggerFactory.CreateLogger());
Should.Throw(() => target.InitialBuild(false, _cProjectsExampleCsproj, null))
.Details.ShouldBe("Initial build of targeted project failed. Please make sure the targeted project is buildable. You can reproduce this error yourself using: \"dotnet build Example.csproj\"");
@@ -42,7 +42,7 @@ public void InitialBuildProcess_WithPathAsBuildCommand_ShouldThrowStrykerInputEx
processMock.SetupProcessMockToReturn("", 1);
- var target = new InitialBuildProcess(processMock.Object, _mockFileSystem);
+ var target = new InitialBuildProcess(processMock.Object, _mockFileSystem, TestLoggerFactory.CreateLogger());
Should.Throw(() => target.InitialBuild(true, null, _cProjectsExampleCsproj, null, null,
@"C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Current\Bin\MSBuild.exe"))
@@ -58,7 +58,7 @@ public void InitialBuildProcess_WithPathAsBuildCommand_TriesWithMsBuildIfDotnetF
processMock.SetupProcessMockToReturn("", 2);
- var target = new InitialBuildProcess(processMock.Object, _mockFileSystem);
+ var target = new InitialBuildProcess(processMock.Object, _mockFileSystem, TestLoggerFactory.CreateLogger());
Should.Throw(() => target.InitialBuild(false, null, _cProjectsExampleCsproj, null, null, @"C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Current\Bin\MSBuild.exe"))
.Details.ShouldBe("Initial build of targeted project failed. Please make sure the targeted project is buildable. You can reproduce this error yourself using: \"\"" +
@@ -75,7 +75,7 @@ public void InitialBuildProcess_ShouldNotThrowExceptionOnSuccess()
processMock.SetupProcessMockToReturn("");
- var target = new InitialBuildProcess(processMock.Object, _mockFileSystem);
+ var target = new InitialBuildProcess(processMock.Object, _mockFileSystem, TestLoggerFactory.CreateLogger());
target.InitialBuild(false, "/", "/");
@@ -97,7 +97,7 @@ public void InitialBuildProcess_ShouldRunMsBuildOnDotnetFramework(string msBuild
var mockFileSystem = new MockFileSystem();
mockFileSystem.AddFile(msBuildLocation, new MockFileData("Mocked MsBuild Executable"));
- var target = new InitialBuildProcess(processMock.Object, mockFileSystem);
+ var target = new InitialBuildProcess(processMock.Object, mockFileSystem, TestLoggerFactory.CreateLogger());
target.InitialBuild(true, "./ExampleProject.sln", "./ExampleProject.sln", "Debug");
@@ -121,7 +121,7 @@ public void InitialBuildProcess_ShouldUseCustomMsbuildIfNotNull()
processMock.SetupProcessMockToReturn("");
- var target = new InitialBuildProcess(processMock.Object, mockFileSystem);
+ var target = new InitialBuildProcess(processMock.Object, mockFileSystem, TestLoggerFactory.CreateLogger());
target.InitialBuild(true, "/", "./ExampleProject.sln", null, null, CustomMsBuildPath);
processMock.Verify(x => x.Start(It.IsAny(),
@@ -139,7 +139,7 @@ public void InitialBuildProcess_ShouldRunDotnetBuildIfNotDotnetFramework()
processMock.SetupProcessMockToReturn("");
- var target = new InitialBuildProcess(processMock.Object, _mockFileSystem);
+ var target = new InitialBuildProcess(processMock.Object, _mockFileSystem, TestLoggerFactory.CreateLogger());
target.InitialBuild(false, "./ExampleProject.csproj", null);
@@ -158,7 +158,7 @@ public void InitialBuildProcess_ShouldUseSolutionPathIfSet()
processMock.SetupProcessMockToReturn("");
- var target = new InitialBuildProcess(processMock.Object, _mockFileSystem);
+ var target = new InitialBuildProcess(processMock.Object, _mockFileSystem, TestLoggerFactory.CreateLogger());
target.InitialBuild(false, "", "./ExampleProject.sln");
diff --git a/src/Stryker.Core/Stryker.Core.UnitTest/Initialisation/InitialTestProcessTests.cs b/src/Stryker.Core/Stryker.Core.UnitTest/Initialisation/InitialTestProcessTests.cs
index 9c59a9c5fc..3842d5e3ba 100644
--- a/src/Stryker.Core/Stryker.Core.UnitTest/Initialisation/InitialTestProcessTests.cs
+++ b/src/Stryker.Core/Stryker.Core.UnitTest/Initialisation/InitialTestProcessTests.cs
@@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.Linq;
using System.Threading;
+using Microsoft.Extensions.Logging;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Moq;
using Shouldly;
@@ -11,6 +12,7 @@
using Stryker.TestRunner.Results;
using Stryker.TestRunner.Tests;
using Stryker.TestRunner.VsTest;
+using Stryker.Utilities;
namespace Stryker.Core.UnitTest.Initialisation;
@@ -22,7 +24,7 @@ public class InitialTestProcessTests : TestBase
public InitialTestProcessTests()
{
- _target = new InitialTestProcess();
+ _target = new InitialTestProcess(TestLoggerFactory.CreateLogger());
_options = new StrykerOptions
{
AdditionalTimeout = 0
diff --git a/src/Stryker.Core/Stryker.Core.UnitTest/Initialisation/InitialisationProcessTests.cs b/src/Stryker.Core/Stryker.Core.UnitTest/Initialisation/InitialisationProcessTests.cs
index fbbbbe05ae..5d0cab341b 100644
--- a/src/Stryker.Core/Stryker.Core.UnitTest/Initialisation/InitialisationProcessTests.cs
+++ b/src/Stryker.Core/Stryker.Core.UnitTest/Initialisation/InitialisationProcessTests.cs
@@ -4,6 +4,7 @@
using System.IO.Abstractions;
using System.IO.Abstractions.TestingHelpers;
using System.Linq;
+using Microsoft.Extensions.Logging;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Moq;
using Shouldly;
@@ -45,7 +46,8 @@ public void InitialisationProcess_ShouldCallNeededResolvers()
});
inputFileResolverMock.SetupGet(x => x.FileSystem).Returns(new FileSystem());
- var target = new InitialisationProcess(inputFileResolverMock.Object);
+ var loggerMock = new Mock>();
+ var target = new InitialisationProcess(inputFileResolverMock.Object, Mock.Of(), Mock.Of(), loggerMock.Object);
var options = new StrykerOptions
{
@@ -82,9 +84,7 @@ public void InitialisationProcess_ShouldThrowOnFailedInitialTestRun()
testRunnerMock.Setup(x => x.DiscoverTests(It.IsAny())).Returns(true);
initialTestProcessMock.Setup(x => x.InitialTest(It.IsAny(), It.IsAny(), It.IsAny())).Throws(new InputException("")); // failing test
- var target = new InitialisationProcess(inputFileResolverMock.Object,
- initialBuildProcessMock.Object,
- initialTestProcessMock.Object);
+ var loggerMock = new Mock>(); var target = new InitialisationProcess(inputFileResolverMock.Object, initialBuildProcessMock.Object, initialTestProcessMock.Object, loggerMock.Object);
var options = new StrykerOptions
{
ProjectName = "TheProjectName",
@@ -129,9 +129,7 @@ public void InitialisationProcess_ShouldThrowIfHalfTestsAreFailing()
new InitialTestRun(
new TestRunResult(Array.Empty(), ranTests, failedTests, TestIdentifierList.NoTest(), string.Empty, Enumerable.Empty(), TimeSpan.Zero), new TimeoutValueCalculator(0))); // failing test
- var target = new InitialisationProcess(inputFileResolverMock.Object,
- initialBuildProcessMock.Object,
- initialTestProcessMock.Object);
+ var loggerMock = new Mock>(); var target = new InitialisationProcess(inputFileResolverMock.Object, initialBuildProcessMock.Object, initialTestProcessMock.Object, loggerMock.Object);
var options = new StrykerOptions
{
ProjectName = "TheProjectName",
@@ -180,9 +178,7 @@ public void InitialisationProcess_ShouldThrowOnTestTestIfAskedFor(bool breakOnIn
initialTestProcessMock.Setup(x => x.InitialTest(It.IsAny(), It.IsAny(), It.IsAny())).Returns(new InitialTestRun(
new TestRunResult(Array.Empty(), ranTests, failedTests, TestIdentifierList.NoTest(), string.Empty, Enumerable.Empty(), TimeSpan.Zero), new TimeoutValueCalculator(0))); // failing test
- var target = new InitialisationProcess(inputFileResolverMock.Object,
- initialBuildProcessMock.Object,
- initialTestProcessMock.Object);
+ var loggerMock = new Mock>(); var target = new InitialisationProcess(inputFileResolverMock.Object, initialBuildProcessMock.Object, initialTestProcessMock.Object, loggerMock.Object);
var options = new StrykerOptions
{
ProjectName = "TheProjectName",
@@ -228,9 +224,7 @@ public void InitialisationProcess_ShouldRunTestSession()
initialTestProcessMock.Setup(x => x.InitialTest(It.IsAny(), It.IsAny(), It.IsAny()))
.Returns(new InitialTestRun(new TestRunResult(true), null)); // failing test
- var target = new InitialisationProcess(inputFileResolverMock.Object,
- initialBuildProcessMock.Object,
- initialTestProcessMock.Object);
+ var loggerMock = new Mock>(); var target = new InitialisationProcess(inputFileResolverMock.Object, initialBuildProcessMock.Object, initialTestProcessMock.Object, loggerMock.Object);
var options = new StrykerOptions
{
ProjectName = "TheProjectName",
@@ -283,9 +277,7 @@ public void InitialisationProcess_ShouldThrowOnWhenNoTestDetected(string library
initialTestProcessMock.Setup(x => x.InitialTest(It.IsAny(), It.IsAny(), It.IsAny()))
.Returns(new InitialTestRun(new TestRunResult(Array.Empty(), TestIdentifierList.NoTest(), TestIdentifierList.NoTest(), TestIdentifierList.NoTest(), string.Empty, Enumerable.Empty(), TimeSpan.Zero), null)); // failing test
- var target = new InitialisationProcess(inputFileResolverMock.Object,
- initialBuildProcessMock.Object,
- initialTestProcessMock.Object);
+ var loggerMock = new Mock>(); var target = new InitialisationProcess(inputFileResolverMock.Object, initialBuildProcessMock.Object, initialTestProcessMock.Object, loggerMock.Object);
var options = new StrykerOptions
{
ProjectName = "TheProjectName",
@@ -334,9 +326,7 @@ public void InitialisationProcess_ShouldThrowOnWhenNoTestDetectedAndCorrectDepen
initialTestProcessMock.Setup(x => x.InitialTest(It.IsAny(), It.IsAny(), It.IsAny()))
.Returns(new InitialTestRun(new TestRunResult(Array.Empty(), TestIdentifierList.NoTest(), TestIdentifierList.NoTest(), TestIdentifierList.NoTest(), string.Empty, Enumerable.Empty(), TimeSpan.Zero), null)); // failing test
- var target = new InitialisationProcess(inputFileResolverMock.Object,
- initialBuildProcessMock.Object,
- initialTestProcessMock.Object);
+ var loggerMock = new Mock>(); var target = new InitialisationProcess(inputFileResolverMock.Object, initialBuildProcessMock.Object, initialTestProcessMock.Object, loggerMock.Object);
var options = new StrykerOptions
{
ProjectName = "TheProjectName",
@@ -347,3 +337,4 @@ public void InitialisationProcess_ShouldThrowOnWhenNoTestDetectedAndCorrectDepen
Should.Throw(() => target.GetMutationTestInputs(options, projects, testRunnerMock.Object)).Message.ShouldContain("failed to deploy or run.");
}
}
+
diff --git a/src/Stryker.Core/Stryker.Core.UnitTest/Initialisation/InputFileResolverTests.cs b/src/Stryker.Core/Stryker.Core.UnitTest/Initialisation/InputFileResolverTests.cs
index ed4631b3d7..0f53e05ecb 100644
--- a/src/Stryker.Core/Stryker.Core.UnitTest/Initialisation/InputFileResolverTests.cs
+++ b/src/Stryker.Core/Stryker.Core.UnitTest/Initialisation/InputFileResolverTests.cs
@@ -145,7 +145,7 @@ public void InitializeShouldFindFilesRecursively()
};
BuildBuildAnalyzerMock(analyzerResults);
- var target = new InputFileResolver(fileSystem, BuildalyzerProviderMock.Object, _nugetMock.Object);
+ var target = new InputFileResolver(fileSystem, BuildalyzerProviderMock.Object, _nugetMock.Object, TestLoggerFactory.CreateLogger());
var result = target.ResolveSourceProjectInfos(_options).First();
@@ -180,7 +180,7 @@ public void InitializeShouldUseBuildalyzerResult()
BuildBuildAnalyzerMock(analyzerResults);
- var target = new InputFileResolver(fileSystem, BuildalyzerProviderMock.Object, _nugetMock.Object);
+ var target = new InputFileResolver(fileSystem, BuildalyzerProviderMock.Object, _nugetMock.Object, TestLoggerFactory.CreateLogger());
var result = target.ResolveSourceProjectInfos(_options).First();
@@ -218,7 +218,7 @@ public void ShouldUseCustomMsBuildPath()
};
BuildBuildAnalyzerMock(analyzerResults);
- var target = new InputFileResolver(fileSystem, BuildalyzerProviderMock.Object, _nugetMock.Object);
+ var target = new InputFileResolver(fileSystem, BuildalyzerProviderMock.Object, _nugetMock.Object, TestLoggerFactory.CreateLogger());
var options = new StrykerOptions { MsBuildPath = "\\msbuild.exe",ProjectPath = _testPath };
var result = target.ResolveSourceProjectInfos(options).First();
@@ -249,7 +249,7 @@ public void ShouldHandleFailedAnalysis()
};
BuildBuildAnalyzerMock(analyzerResults);
- var target = new InputFileResolver(fileSystem, BuildalyzerProviderMock.Object, _nugetMock.Object);
+ var target = new InputFileResolver(fileSystem, BuildalyzerProviderMock.Object, _nugetMock.Object, TestLoggerFactory.CreateLogger());
var action = () => target.ResolveSourceProjectInfos(_options).First();
action.ShouldThrow();
@@ -278,7 +278,7 @@ public void InitializeShouldNotSkipXamlFiles()
};
BuildBuildAnalyzerMock(analyzerResults);
- var target = new InputFileResolver(fileSystem, BuildalyzerProviderMock.Object, _nugetMock.Object);
+ var target = new InputFileResolver(fileSystem, BuildalyzerProviderMock.Object, _nugetMock.Object, TestLoggerFactory.CreateLogger());
var result = target.ResolveSourceProjectInfos(_options).First();
@@ -328,7 +328,7 @@ public void InitializeShouldMutateAssemblyInfo()
};
BuildBuildAnalyzerMock(analyzerResults);
- var target = new InputFileResolver(fileSystem, BuildalyzerProviderMock.Object, _nugetMock.Object);
+ var target = new InputFileResolver(fileSystem, BuildalyzerProviderMock.Object, _nugetMock.Object, TestLoggerFactory.CreateLogger());
var result = target.ResolveSourceProjectInfos(_options).First();
@@ -385,7 +385,7 @@ public void InitializeShouldNotMutateIncompleteAssemblyInfo()
};
BuildBuildAnalyzerMock(analyzerResults);
- var target = new InputFileResolver(fileSystem, BuildalyzerProviderMock.Object, _nugetMock.Object);
+ var target = new InputFileResolver(fileSystem, BuildalyzerProviderMock.Object, _nugetMock.Object, TestLoggerFactory.CreateLogger());
var result = target.ResolveSourceProjectInfos(_options).First();
@@ -414,7 +414,7 @@ public void InitializeShouldFindSpecifiedTestProjectFile()
};
BuildBuildAnalyzerMock(analyzerResults);
- var target = new InputFileResolver(fileSystem, BuildalyzerProviderMock.Object, _nugetMock.Object);
+ var target = new InputFileResolver(fileSystem, BuildalyzerProviderMock.Object, _nugetMock.Object, TestLoggerFactory.CreateLogger());
var result = target.ResolveSourceProjectInfos(_options).First();
@@ -471,7 +471,7 @@ public void InitializeShouldResolveImportedProject()
};
BuildBuildAnalyzerMock(analyzerResults);
- var target = new InputFileResolver(fileSystem, BuildalyzerProviderMock.Object, _nugetMock.Object);
+ var target = new InputFileResolver(fileSystem, BuildalyzerProviderMock.Object, _nugetMock.Object, TestLoggerFactory.CreateLogger());
var result = target.ResolveSourceProjectInfos(_options).First();
@@ -517,7 +517,7 @@ public void InitializeShouldNotResolveImportedPropsFile()
};
BuildBuildAnalyzerMock(analyzerResults);
- var target = new InputFileResolver(fileSystem, BuildalyzerProviderMock.Object, _nugetMock.Object);
+ var target = new InputFileResolver(fileSystem, BuildalyzerProviderMock.Object, _nugetMock.Object, TestLoggerFactory.CreateLogger());
var result = target.ResolveSourceProjectInfos(_options).First();
@@ -588,7 +588,7 @@ public void InitializeShouldResolveMultipleImportedProjects()
};
BuildBuildAnalyzerMock(analyzerResults);
- var target = new InputFileResolver(fileSystem, BuildalyzerProviderMock.Object, _nugetMock.Object);
+ var target = new InputFileResolver(fileSystem, BuildalyzerProviderMock.Object, _nugetMock.Object, TestLoggerFactory.CreateLogger());
var result = target.ResolveSourceProjectInfos(_options).First();
@@ -636,7 +636,7 @@ public void InitializeShouldThrowOnMissingSharedProject()
};
BuildBuildAnalyzerMock(analyzerResults);
- var target = new InputFileResolver(fileSystem, BuildalyzerProviderMock.Object, _nugetMock.Object);
+ var target = new InputFileResolver(fileSystem, BuildalyzerProviderMock.Object, _nugetMock.Object, TestLoggerFactory.CreateLogger());
Should.Throw(() => target.ResolveSourceProjectInfos(_options));
}
@@ -688,7 +688,7 @@ public void InitializeShouldResolvePropertiesInSharedProjectImports()
};
BuildBuildAnalyzerMock(analyzerResults);
- var target = new InputFileResolver(fileSystem, BuildalyzerProviderMock.Object, _nugetMock.Object);
+ var target = new InputFileResolver(fileSystem, BuildalyzerProviderMock.Object, _nugetMock.Object, TestLoggerFactory.CreateLogger());
var result = target.ResolveSourceProjectInfos(_options).First();
@@ -741,7 +741,7 @@ public void InitializeShouldThrowIfImportPropertyCannotBeResolved()
};
BuildBuildAnalyzerMock(analyzerResults);
- var target = new InputFileResolver(fileSystem, BuildalyzerProviderMock.Object, _nugetMock.Object);
+ var target = new InputFileResolver(fileSystem, BuildalyzerProviderMock.Object, _nugetMock.Object, TestLoggerFactory.CreateLogger());
var exception = Should.Throw(() => target.ResolveSourceProjectInfos(_options));
exception.Message.ShouldBe($"Missing MSBuild property (SharedDir) in project reference (..{FilePathUtils.NormalizePathSeparators("/$(SharedDir)/Example.projitems")}). Please check your project file ({_sourceProjectPath}) and try again.");
@@ -772,7 +772,7 @@ public void InitializeShouldIgnoreBinFolder(string folderName)
};
BuildBuildAnalyzerMock(analyzerResults);
- var target = new InputFileResolver(fileSystem, BuildalyzerProviderMock.Object, _nugetMock.Object);
+ var target = new InputFileResolver(fileSystem, BuildalyzerProviderMock.Object, _nugetMock.Object, TestLoggerFactory.CreateLogger());
var result = target.ResolveSourceProjectInfos(_options).First();
@@ -793,7 +793,7 @@ public void ShouldThrowExceptionOnNullPath()
BuildBuildAnalyzerMock(new Dictionary());
- var target = new InputFileResolver(fileSystem, BuildalyzerProviderMock.Object, _nugetMock.Object);
+ var target = new InputFileResolver(fileSystem, BuildalyzerProviderMock.Object, _nugetMock.Object, TestLoggerFactory.CreateLogger());
Should.Throw(() => target.FindTestProject(null));
}
@@ -807,7 +807,7 @@ public void ShouldThrowExceptionOnNoProjectFile()
BuildBuildAnalyzerMock(new Dictionary());
- var target = new InputFileResolver(fileSystem, BuildalyzerProviderMock.Object, _nugetMock.Object);
+ var target = new InputFileResolver(fileSystem, BuildalyzerProviderMock.Object, _nugetMock.Object, TestLoggerFactory.CreateLogger());
Should.Throw(() => target.FindTestProject(Path.Combine(_sourcePath)));
}
@@ -821,7 +821,7 @@ public void ShouldThrowStrykerInputExceptionOnTwoProjectFiles_AndNoTestProjectFi
{ Path.Combine(_sourcePath, "Recursive.cs"), new MockFileData("content")}
});
- var target = new InputFileResolver(fileSystem, null);
+ var target = new InputFileResolver(fileSystem, new Mock().Object, new Mock().Object, TestLoggerFactory.CreateLogger());
var errorMessage =
$@"Expected exactly one .csproj file, found more than one:
@@ -846,7 +846,7 @@ public void ShouldNotThrowExceptionOnTwoProjectFilesInDifferentLocations()
{ Path.Combine(_sourcePath, "Recursive.cs"), new MockFileData("content")}
});
- var target = new InputFileResolver(fileSystem, null);
+ var target = new InputFileResolver(fileSystem, new Mock().Object, new Mock().Object, TestLoggerFactory.CreateLogger());
var actual = target.FindTestProject(Path.Combine(_sourcePath));
@@ -862,7 +862,7 @@ public void ShouldChooseGivenTestProjectFileIfPossible()
{ Path.Combine(_sourcePath, "TestProject.csproj"), new MockFileData(_defaultTestProjectFileContents)},
{ Path.Combine(_sourcePath, "Recursive.cs"), new MockFileData("content")}
});
- var target = new InputFileResolver(fileSystem, null);
+ var target = new InputFileResolver(fileSystem, new Mock().Object, new Mock().Object, TestLoggerFactory.CreateLogger());
var actual = target.FindTestProject(Path.Combine(_sourcePath, "TestProject.csproj"));
@@ -877,7 +877,7 @@ public void ShouldThrowExceptionIfGivenTestFileDoesNotExist()
{ Path.Combine(_sourcePath, "AlternateProject.csproj"), new MockFileData(_defaultTestProjectFileContents)},
{ Path.Combine(_sourcePath, "Recursive.cs"), new MockFileData("content")}
});
- var target = new InputFileResolver(fileSystem, null);
+ var target = new InputFileResolver(fileSystem, new Mock().Object, new Mock().Object, TestLoggerFactory.CreateLogger());
var exception = Should.Throw(() => target.FindTestProject(Path.Combine(_sourcePath, "GivenTestProject.csproj")));
exception.Message.ShouldStartWith("No .csproj or .fsproj file found, please check your project directory at");
@@ -892,7 +892,7 @@ public void ShouldChooseGivenTestProjectFileIfPossible_AtRelativeLocation()
{ Path.Combine(_sourcePath, "SubFolder", "TestProject.csproj"), new MockFileData(_defaultTestProjectFileContents)},
{ Path.Combine(_sourcePath, "Recursive.cs"), new MockFileData("content")}
});
- var target = new InputFileResolver(fileSystem, null);
+ var target = new InputFileResolver(fileSystem, new Mock().Object, new Mock().Object, TestLoggerFactory.CreateLogger());
var actual = target.FindTestProject(Path.Combine(_sourcePath, "SubFolder", "TestProject.csproj"));
@@ -908,7 +908,7 @@ public void ShouldChooseGivenTestProjectFileIfPossible_AtFullPath()
{ Path.Combine(_sourcePath,"SubFolder", "TestProject.csproj"), new MockFileData(_defaultTestProjectFileContents)},
{ Path.Combine(_sourcePath, "Recursive.cs"), new MockFileData("content")}
});
- var target = new InputFileResolver(fileSystem, null);
+ var target = new InputFileResolver(fileSystem, new Mock().Object, new Mock().Object, TestLoggerFactory.CreateLogger());
var actual = target.FindTestProject(Path.Combine(_filesystemRoot,
FilePathUtils.NormalizePathSeparators(Path.Combine(_sourcePath, "SubFolder"))));
@@ -952,7 +952,7 @@ public void ShouldSelectAvailableFramework_WhenDesiredNotFound(string targetFram
};
BuildBuildAnalyzerMock(analyzerResults);
- var target = new InputFileResolver(fileSystem, BuildalyzerProviderMock.Object, _nugetMock.Object);
+ var target = new InputFileResolver(fileSystem, BuildalyzerProviderMock.Object, _nugetMock.Object, TestLoggerFactory.CreateLogger());
// Act
var result = target.ResolveSourceProjectInfos(options).First();
@@ -1002,7 +1002,7 @@ public void ShouldSelectFrameworkBasedOnTestProject(string testFrameworks, strin
};
BuildBuildAnalyzerMock(analyzerResults);
- var target = new InputFileResolver(fileSystem, BuildalyzerProviderMock.Object, _nugetMock.Object);
+ var target = new InputFileResolver(fileSystem, BuildalyzerProviderMock.Object, _nugetMock.Object, TestLoggerFactory.CreateLogger());
// Act
var result = target.ResolveSourceProjectInfos(options).First();
@@ -1058,7 +1058,7 @@ public void ShouldSkipXamlFiles()
};
BuildBuildAnalyzerMock(analyzerResults);
- var target = new InputFileResolver(fileSystem, BuildalyzerProviderMock.Object, _nugetMock.Object);
+ var target = new InputFileResolver(fileSystem, BuildalyzerProviderMock.Object, _nugetMock.Object, TestLoggerFactory.CreateLogger());
// Act
var result = target.ResolveSourceProjectInfos(_options).First();
@@ -1103,7 +1103,7 @@ public void ShouldFindAllTestProjects()
BuildBuildAnalyzerMock(analyzerResults);
- var target = new InputFileResolver(fileSystem, BuildalyzerProviderMock.Object, _nugetMock.Object);
+ var target = new InputFileResolver(fileSystem, BuildalyzerProviderMock.Object, _nugetMock.Object, TestLoggerFactory.CreateLogger());
// Act
var result = target.ResolveSourceProjectInfos(options).First();
@@ -1131,7 +1131,7 @@ public void ShouldFindSourceProjectWhenSingleProjectReferenceAndNoFilter()
};
BuildBuildAnalyzerMock(analyzerResults);
- var target = new InputFileResolver(fileSystem, BuildalyzerProviderMock.Object, _nugetMock.Object);
+ var target = new InputFileResolver(fileSystem, BuildalyzerProviderMock.Object, _nugetMock.Object, TestLoggerFactory.CreateLogger());
var result = target.ResolveSourceProjectInfos(_options).First();
@@ -1154,7 +1154,7 @@ public void ShouldThrowOnNoProjectReference()
};
BuildBuildAnalyzerMock(analyzerResults);
- var target = new InputFileResolver(fileSystem, BuildalyzerProviderMock.Object, _nugetMock.Object);
+ var target = new InputFileResolver(fileSystem, BuildalyzerProviderMock.Object, _nugetMock.Object, TestLoggerFactory.CreateLogger());
var action = () => target.ResolveSourceProjectInfos(_options);
@@ -1186,7 +1186,7 @@ public void ShouldThrowOnMultipleProjectsWithoutFilter()
};
BuildBuildAnalyzerMock(analyzerResults);
- var target = new InputFileResolver(fileSystem, BuildalyzerProviderMock.Object, _nugetMock.Object);
+ var target = new InputFileResolver(fileSystem, BuildalyzerProviderMock.Object, _nugetMock.Object, TestLoggerFactory.CreateLogger());
// Act
var result = () => target.ResolveSourceProjectInfos(_options);
@@ -1226,7 +1226,7 @@ public void ShouldNotThrowIfMultipleProjectButOneIsAlwaysReferenced()
};
BuildBuildAnalyzerMock(analyzerResults);
- var target = new InputFileResolver(fileSystem, BuildalyzerProviderMock.Object, _nugetMock.Object);
+ var target = new InputFileResolver(fileSystem, BuildalyzerProviderMock.Object, _nugetMock.Object, TestLoggerFactory.CreateLogger());
var options = new StrykerOptions
{
TestProjects = [_testProjectPath, test2Path],
@@ -1269,7 +1269,7 @@ public void ShouldMatchFromMultipleProjectByName(string shouldMatch)
};
BuildBuildAnalyzerMock(analyzerResults);
- var target = new InputFileResolver(fileSystem, BuildalyzerProviderMock.Object, _nugetMock.Object);
+ var target = new InputFileResolver(fileSystem, BuildalyzerProviderMock.Object, _nugetMock.Object, TestLoggerFactory.CreateLogger());
var options = new StrykerOptions { SourceProjectName = shouldMatch, ProjectPath = _testPath };
var result = target.ResolveSourceProjectInfos(options).First();
@@ -1306,7 +1306,7 @@ public void ShouldThrowWhenTheNameMatchesMore(string shouldMatchMoreThanOne)
};
BuildBuildAnalyzerMock(analyzerResults);
- var target = new InputFileResolver(fileSystem, BuildalyzerProviderMock.Object, _nugetMock.Object);
+ var target = new InputFileResolver(fileSystem, BuildalyzerProviderMock.Object, _nugetMock.Object, TestLoggerFactory.CreateLogger());
var options = new StrykerOptions { SourceProjectName = shouldMatchMoreThanOne, ProjectPath = _testPath };
var result = () => target.ResolveSourceProjectInfos(options);
@@ -1333,7 +1333,7 @@ public void ShouldThrowWhenTheNameMatchesNone()
};
BuildBuildAnalyzerMock(analyzerResults);
- var target = new InputFileResolver(fileSystem, BuildalyzerProviderMock.Object, _nugetMock.Object);
+ var target = new InputFileResolver(fileSystem, BuildalyzerProviderMock.Object, _nugetMock.Object, TestLoggerFactory.CreateLogger());
var options = new StrykerOptions { SourceProjectName = "wrong.csprj", ProjectPath = _testPath };
var result = () => target.ResolveSourceProjectInfos(options);
@@ -1361,7 +1361,7 @@ public void ShouldFallbackToProjectReferenceIfDependencyNotFound()
};
BuildBuildAnalyzerMock(analyzerResults);
- var target = new InputFileResolver(fileSystem, BuildalyzerProviderMock.Object, _nugetMock.Object);
+ var target = new InputFileResolver(fileSystem, BuildalyzerProviderMock.Object, _nugetMock.Object, TestLoggerFactory.CreateLogger());
var result = target.ResolveSourceProjectInfos(_options).First();
@@ -1390,7 +1390,7 @@ public void ShouldMatchOnBothForwardAndBackwardsSlash(string shouldMatch)
};
BuildBuildAnalyzerMock(analyzerResults);
- var target = new InputFileResolver(fileSystem, BuildalyzerProviderMock.Object, _nugetMock.Object);
+ var target = new InputFileResolver(fileSystem, BuildalyzerProviderMock.Object, _nugetMock.Object, TestLoggerFactory.CreateLogger());
var options = new StrykerOptions { SourceProjectName = shouldMatch, ProjectPath = _testPath };
var result = target.ResolveSourceProjectInfos(_options).First();
diff --git a/src/Stryker.Core/Stryker.Core.UnitTest/Initialisation/NugetRestoreProcessTests.cs b/src/Stryker.Core/Stryker.Core.UnitTest/Initialisation/NugetRestoreProcessTests.cs
index ac4a6fc280..bc911c6af4 100644
--- a/src/Stryker.Core/Stryker.Core.UnitTest/Initialisation/NugetRestoreProcessTests.cs
+++ b/src/Stryker.Core/Stryker.Core.UnitTest/Initialisation/NugetRestoreProcessTests.cs
@@ -60,7 +60,7 @@ public void HappyFlow()
ExitCode = 0,
Output = "Msbuild executable path found at "
});
- var target = new NugetRestoreProcess(processExecutorMock.Object);
+ var target = new NugetRestoreProcess(processExecutorMock.Object, TestLoggerFactory.CreateLogger());
target.RestorePackages(SolutionPath);
@@ -122,7 +122,7 @@ public void RetryIfRestoreFails()
Output = "Packages restore failed."
}).Verifiable(Times.Once);
- var target = new NugetRestoreProcess(processExecutorMock.Object);
+ var target = new NugetRestoreProcess(processExecutorMock.Object, TestLoggerFactory.CreateLogger());
target.RestorePackages(SolutionPath);
@@ -181,7 +181,7 @@ public void FailToGetMsBuildVersion()
ExitCode = 0,
Output = "Msbuild executable path found at "
});
- var target = new NugetRestoreProcess(processExecutorMock.Object);
+ var target = new NugetRestoreProcess(processExecutorMock.Object, TestLoggerFactory.CreateLogger());
target.RestorePackages(SolutionPath);
@@ -242,7 +242,7 @@ public void NugetIsUsingSuppliedMsBuild()
Output = "Msbuild executable path found at "
});
- var target = new NugetRestoreProcess(processExecutorMock.Object);
+ var target = new NugetRestoreProcess(processExecutorMock.Object, TestLoggerFactory.CreateLogger());
target.RestorePackages(SolutionPath, msbuildPath);
processExecutorMock.Verify(x => x.Start(CProgramFilesX86MicrosoftVisualStudio, It.Is((p) => p.EndsWith("where.exe")),
@@ -289,7 +289,7 @@ public void ShouldThrowOnNugetNotInstalled()
Output = "INFO: Could not find files for the given pattern(s)."
});
- var target = new NugetRestoreProcess(processExecutorMock.Object);
+ var target = new NugetRestoreProcess(processExecutorMock.Object, TestLoggerFactory.CreateLogger());
Should.Throw(() => target.RestorePackages(SolutionPath));
}
@@ -348,7 +348,7 @@ public void ShouldPickFirstNugetPath()
Output = "Msbuild executable path found at "
});
- var target = new NugetRestoreProcess(processExecutorMock.Object);
+ var target = new NugetRestoreProcess(processExecutorMock.Object, TestLoggerFactory.CreateLogger());
target.RestorePackages(SolutionPath);
processExecutorMock.Verify(p => p.Start(It.IsAny(), It.IsAny(), It.IsAny(),
diff --git a/src/Stryker.Core/Stryker.Core.UnitTest/Initialisation/ProjectMutatorTests.cs b/src/Stryker.Core/Stryker.Core.UnitTest/Initialisation/ProjectMutatorTests.cs
index a1f82ae0bb..d43b4de896 100644
--- a/src/Stryker.Core/Stryker.Core.UnitTest/Initialisation/ProjectMutatorTests.cs
+++ b/src/Stryker.Core/Stryker.Core.UnitTest/Initialisation/ProjectMutatorTests.cs
@@ -3,13 +3,17 @@
using System.IO.Abstractions;
using System.IO.Abstractions.TestingHelpers;
using System.Linq;
+using Microsoft.CodeAnalysis.CSharp;
+using Microsoft.Extensions.DependencyInjection;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Moq;
using Shouldly;
using Stryker.Abstractions;
+using Stryker.Abstractions.Options;
using Stryker.Abstractions.Reporting;
using Stryker.Core.Initialisation;
using Stryker.Core.MutationTest;
+using Stryker.Core.ProjectComponents.Csharp;
using Stryker.Core.ProjectComponents.TestProjects;
using Stryker.TestRunner.Results;
using Stryker.TestRunner.Tests;
@@ -51,14 +55,43 @@ public void Test2()
public ProjectMutatorTests()
{
_mutationTestProcessMock.Setup(x => x.Mutate());
+ _mutationTestProcessMock.Setup(x => x.Initialize(It.IsAny(), It.IsAny(), It.IsAny()));
_fileSystemMock.File.WriteAllText(_testFilePath, _testFileContents);
+
+ var analyzerResult = TestHelper.SetupProjectAnalyzerResult(
+ properties: new Dictionary
+ {
+ { "Language", "C#" },
+ { "AssemblyName", "TestProject" },
+ { "TargetDir", "c:\\bin\\Debug\\netcoreapp3.1" },
+ { "TargetFileName", "TestProject.dll" }
+ },
+ projectFilePath: "c:\\project.csproj",
+ targetFramework: "netcoreapp3.1",
+ projectReferences: Array.Empty(),
+ sourceFiles: Array.Empty()).Object;
+
+ var folder = new CsharpFolderComposite();
+ folder.Add(new CsharpFileLeaf
+ {
+ FullPath = "c:\\TestClass.cs",
+ SyntaxTree = CSharpSyntaxTree.ParseText("class TestClass { }")
+ });
+
_mutationTestInput = new MutationTestInput()
{
+ SourceProjectInfo = new Stryker.Core.ProjectComponents.SourceProjects.SourceProjectInfo()
+ {
+ AnalyzerResult = analyzerResult,
+ ProjectContents = folder
+ },
TestProjectsInfo = new TestProjectsInfo(_fileSystemMock)
{
TestProjects = new List
{
new(_fileSystemMock, TestHelper.SetupProjectAnalyzerResult(
+ projectFilePath: "c:\\testproject.csproj",
+ targetFramework: "netcoreapp3.1",
sourceFiles: new [] { _testFilePath }).Object)
}
}
@@ -70,7 +103,8 @@ public void ShouldInitializeEachProjectInSolution()
{
// arrange
var options = new StrykerOptions();
- var target = new ProjectMutator(_mutationTestProcessMock.Object);
+ var serviceProviderMock = new Mock();
+ var target = new ProjectMutator(TestLoggerFactory.CreateLogger(), serviceProviderMock.Object, _mutationTestProcessMock.Object);
var testCase1 = new VsTestCase(new TestCase("mytestname1", new Uri(_testFilePath), _testFileContents)
{
Id = Guid.NewGuid(),
diff --git a/src/Stryker.Core/Stryker.Core.UnitTest/Initialisation/ProjectOrchestratorTests.cs b/src/Stryker.Core/Stryker.Core.UnitTest/Initialisation/ProjectOrchestratorTests.cs
index eb6c5b8383..356b10ff46 100644
--- a/src/Stryker.Core/Stryker.Core.UnitTest/Initialisation/ProjectOrchestratorTests.cs
+++ b/src/Stryker.Core/Stryker.Core.UnitTest/Initialisation/ProjectOrchestratorTests.cs
@@ -3,6 +3,7 @@
using System.Linq;
using Buildalyzer;
using Microsoft.CodeAnalysis;
+using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Moq;
@@ -11,11 +12,13 @@
using Shouldly;
using Stryker.Abstractions;
using Stryker.Abstractions.Exceptions;
+using Stryker.Abstractions.Options;
using Stryker.Abstractions.Reporting;
using Stryker.Abstractions.Testing;
using Stryker.Core.Initialisation;
using Stryker.Core.MutationTest;
using Stryker.Core.ProjectComponents;
+using Stryker.Core.ProjectComponents.SourceProjects;
using Stryker.TestRunner.Results;
using Stryker.TestRunner.VsTest;
using Stryker.Utilities.Logging;
@@ -208,9 +211,20 @@ public void ShouldRestoreWhenAnalysisFails()
});
var initialBuildProcessMock = new Mock();
+ var initialTestProcessMock = new Mock();
+ initialTestProcessMock.Setup(x => x.InitialTest(It.IsAny(), It.IsAny(), It.IsAny()))
+ .Returns(new InitialTestRun(new TestRunResult(true), new TimeoutValueCalculator(500)));
+ var inputFileResolver = new InputFileResolver(FileSystem, BuildalyzerProviderMock.Object, nugetRestoreMock.Object, TestLoggerFactory.CreateLogger());
+ var initialisationProcess = new InitialisationProcess(inputFileResolver, initialBuildProcessMock.Object, initialTestProcessMock.Object, TestLoggerFactory.CreateLogger());
+
+ var serviceProviderMock = new Mock();
+ var mutationTestExecutorMock = new Mock();
var target = new ProjectOrchestrator(_projectMutatorMock.Object,
- initialBuildProcessMock.Object,
- new InputFileResolver(FileSystem, BuildalyzerProviderMock.Object, nugetRestoreMock.Object));
+ initialisationProcess,
+ inputFileResolver,
+ serviceProviderMock.Object,
+ mutationTestExecutorMock.Object,
+ TestLoggerFactory.CreateLogger());
// act
var result = target.MutateProjects(options, _reporterMock.Object, mockRunner.Object).ToList();
@@ -447,8 +461,19 @@ private ProjectOrchestrator BuildProjectOrchestrator(Dictionary r.InitialTest(It.IsAny())).Returns(new TestRunResult(true));
var initialBuildProcessMock = new Mock();
+ var initialTestProcessMock = new Mock();
+ initialTestProcessMock.Setup(x => x.InitialTest(It.IsAny(), It.IsAny(), It.IsAny()))
+ .Returns(new InitialTestRun(new TestRunResult(true), new TimeoutValueCalculator(500)));
+ var inputFileResolver = new InputFileResolver(FileSystem, BuildalyzerProviderMock.Object, new Mock().Object, TestLoggerFactory.CreateLogger());
+ var initialisationProcess = new InitialisationProcess(inputFileResolver, initialBuildProcessMock.Object, initialTestProcessMock.Object, TestLoggerFactory.CreateLogger());
+
+ var serviceProviderMock = new Mock();
+ var mutationTestExecutorMock = new Mock();
return new ProjectOrchestrator(_projectMutatorMock.Object,
- initialBuildProcessMock.Object,
- new InputFileResolver(FileSystem, BuildalyzerProviderMock.Object));
+ initialisationProcess,
+ inputFileResolver,
+ serviceProviderMock.Object,
+ mutationTestExecutorMock.Object,
+ TestLoggerFactory.CreateLogger());
}
}
diff --git a/src/Stryker.Core/Stryker.Core.UnitTest/MutationTest/CSharpMutationTestProcessTests.cs b/src/Stryker.Core/Stryker.Core.UnitTest/MutationTest/CSharpMutationTestProcessTests.cs
index f1a5f449f5..b693c98306 100644
--- a/src/Stryker.Core/Stryker.Core.UnitTest/MutationTest/CSharpMutationTestProcessTests.cs
+++ b/src/Stryker.Core/Stryker.Core.UnitTest/MutationTest/CSharpMutationTestProcessTests.cs
@@ -88,9 +88,9 @@ public void MutateShouldWriteToDisk_IfCompilationIsSuccessful()
orchestratorMock.SetupAllProperties();
orchestratorMock.Setup(x => x.GetLatestMutantBatch()).Returns(mockMutants);
- var target = new CsharpMutationProcess(fileSystem, options, null, orchestratorMock.Object);
+ var target = new CsharpMutationProcess(fileSystem, TestLoggerFactory.CreateLogger());
- target.Mutate(input);
+ target.Mutate(input, options);
// Verify the created assembly is written to disk on the right location
var expectedPath = Path.Combine(FilesystemRoot, "TestProject", "bin", "Debug", "netcoreapp2.0", "ProjectUnderTest.dll");
diff --git a/src/Stryker.Core/Stryker.Core.UnitTest/MutationTest/MutationTestExecutorTests.cs b/src/Stryker.Core/Stryker.Core.UnitTest/MutationTest/MutationTestExecutorTests.cs
index bd7822b830..7ab657b4ad 100644
--- a/src/Stryker.Core/Stryker.Core.UnitTest/MutationTest/MutationTestExecutorTests.cs
+++ b/src/Stryker.Core/Stryker.Core.UnitTest/MutationTest/MutationTestExecutorTests.cs
@@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
+using Microsoft.Extensions.Logging;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Moq;
using Shouldly;
@@ -25,7 +26,9 @@ public void MutationTestExecutor_NoFailedTestShouldBeSurvived()
var mutant = new Mutant { Id = 1 };
testRunnerMock.Setup(x => x.TestMultipleMutants(It.IsAny(), It.IsAny(), It.IsAny