Describe the bug
At initialization, stryker populates a dictionary of projects, all attached to a .csproj file.
When the filesystem is case insensitive, the file name on disk and the one in the sln/csproj can be different, leading the exception.
Logs
❯ dotnet stryker
_____ _ _ _ _ ______ _______
/ ____| | | | | \ | | ____|__ __|
| (___ | |_ _ __ _ _| | _____ _ __ | \| | |__ | |
\___ \| __| '__| | | | |/ / _ \ '__| | . ` | __| | |
____) | |_| | | |_| | < __/ | | |\ | |____ | |
|_____/ \__|_| \__, |_|\_\___|_| (_)|_| \_|______| |_|
__/ |
|___/
Version: 3.10.0
[18:26:58 INF] Analysis starting.
[18:26:59 INF] Identifying projects to mutate in C:\Git\<redacted>.sln. This can take a while.
[18:27:55 INF] Found 29 source projects
[18:27:55 INF] Found 6 test projects
[18:27:55 INF] Analysis complete.
[18:27:55 INF] Time Elapsed 00:00:56.4337834
Unhandled exception. System.Collections.Generic.KeyNotFoundException: The given key 'C:\Git\<redacted>.Interfaces.csproj' was not present in the dictionary.
at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
at Stryker.Core.Initialisation.InputFileResolver.FindDependentProjects(IReadOnlyCollection`1 projectsUnderTest) in /_/src/Stryker.Core/Stryker.Core/Initialisation/InputFileResolver.cs:line 101
at Stryker.Core.Initialisation.InputFileResolver.ResolveSourceProjectInfos(StrykerOptions options) in /_/src/Stryker.Core/Stryker.Core/Initialisation/InputFileResolver.cs:line 81
at Stryker.Core.Initialisation.InitialisationProcess.GetMutableProjectsInfo(StrykerOptions options) in /_/src/Stryker.Core/Stryker.Core/Initialisation/InitialisationProcess.cs:line 58
at Stryker.Core.Initialisation.ProjectOrchestrator.MutateProjects(StrykerOptions options, IReporter reporters, ITestRunner runner)+MoveNext() in /_/src/Stryker.Core/Stryker.Core/Initialisation/ProjectOrchestrator.cs:line 50
at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
at Stryker.Core.StrykerRunner.RunMutationTest(IStrykerInputs inputs, ILoggerFactory loggerFactory, IProjectOrchestrator projectOrchestrator) in /_/src/Stryker.Core/Stryker.Core/StrykerRunner.cs:line 61
at Stryker.CLI.StrykerCli.RunStryker(IStrykerInputs inputs) in /_/src/Stryker.CLI/Stryker.CLI/StrykerCLI.cs:line 93
at Stryker.CLI.StrykerCli.<>c__DisplayClass10_0.<Run>b__0() in /_/src/Stryker.CLI/Stryker.CLI/StrykerCLI.cs:line 68
at McMaster.Extensions.CommandLineUtils.CommandLineApplication.<>c__DisplayClass143_0.<OnExecute>b__0(CancellationToken _)
at McMaster.Extensions.CommandLineUtils.CommandLineApplication.ExecuteAsync(String[] args, CancellationToken cancellationToken)
at McMaster.Extensions.CommandLineUtils.CommandLineApplication.Execute(String[] args)
at Stryker.CLI.StrykerCli.Run(String[] args) in /_/src/Stryker.CLI/Stryker.CLI/StrykerCLI.cs:line 74
at Stryker.CLI.Program.Main(String[] args) in /_/src/Stryker.CLI/Stryker.CLI/Program.cs:line 14
(Sorry, I can't provide a full log because of the filenames)
Expected behavior
Stryker should not crash :)
Desktop (please complete the following information):
OS: Windows 11
Type of project: core
Framework Version: 7
Stryker Version: 3.10.0
Additional context
I'm willing to help and make a PR if you want me to :)
Describe the bug At initialization, stryker populates a dictionary of projects, all attached to a .csproj file. When the filesystem is case insensitive, the file name on disk and the one in the sln/csproj can be different, leading the exception.
Logs
(Sorry, I can't provide a full log because of the filenames)
Expected behavior Stryker should not crash :)
Desktop (please complete the following information):
Additional context I'm willing to help and make a PR if you want me to :)