Skip to main content

Migration guide

This guide instructs how to update major versions of Stryker.NET.

V1.x --> V2.x

⏭ Updated runtime

The .NET runtime requirement for Stryker.NET has been updated from dotnet 5.0 to dotnet 6.0 LTS.

Please download and install the dotnet 6 runtime and update your pipeline have the dotnet 6 runtime available.

Note that you do not have to update your application to target dotnet 6. Dotnet 6 is only a runtime requirement for stryker to be able to run on your system.

V0.x --> V1.x

⏭ Updated runtime

The .NET runtime requirement for Stryker.NET has been updated from 3.1 to 5.0.

Please download and install the dotnet 5 runtime and update your pipeline have the dotnet 5 runtime available.

Note that you do not have to update your application to use dotnet 5. Dotnet 5 is only a runtime requirement for stryker to be able to run on your system.

⏭ Options rework

Almost all options have been renamed or work different. A fundamental difference on the CLI is how multi value options are passed.

Multi value options

The old annotation for passing multi value options was confusing and not based on any standards. For example this is how multiple reporters were passed 👎

dotnet stryker --reporters "['html', 'progress']"

This now looks like 👍

dotnet stryker --reporter "html" --reporter "progress"

Options migration guide

A lot of options have been renamed. We have also decided that some options either do not belong on the commandline or don't belong in the configuration file. For example an API key should not be stored in the configuration file so that possibility has been removed.

Options migration overview:

Old cliNew cliOld jsonNew json
config-file-pathf | config-file
max-concurrent-testrunnersc | concurrencymax-concurrent-testrunnersconcurrency
dev-modedev-modedev-mode
solution-paths | solutionsolution-pathsolution
log-fileL | log-to-filelog-file
log-levelV | verbositylog-levelverbosity
mutation-levell | mutation-levelmutation-levelmutation-level
threshold-highthreshold-highthresholds.highthresholds.high
threshold-lowthreshold-lowthresholds.lowthresholds.low
threshold-breakb | break-atthresholds.breakthresholds.break
reportersr | reporter (flag allowed multiple times)reportersreporters
project-filep | projectproject-fileproject
diffsincediffsince
timeout-mstimeout-msadditional-timeout
excluded-mutationsexcluded-mutationsignore-mutations
ignore-methodsignore-methodsignore-methods
mutatem | mutatemutatemutate
language-versionlanguage-versionlanguage-version
coverage-analysiscoverage-analysiscoverage-analysis
abort-test-on-failabort-test-on-faildisable-bail
disable-testing-mix-mutationsdisable-testing-mix-mutationsdisable-mix-mutants
test-projectstest-projectstest-projects
dashboard-urldashboard-urldashboard-url
dashboard-api-keydashboard-api-keydashboard-api-key
project-namedashboard-projectproject-info.name
module-namedashboard-moduleproject-info.module
dashboard-versionv | versiondashboard-versionproject-info.version
diff-ignore-filesdiff-ignore-filessince.ignore-changes-in
azure-storage-urlazure-storage-urlbaseline.azure-fileshare-url
dashboard-fallback-versiondashboard-fallback-versionbaseline.fallback-version
baseline-storage-locationbaseline-storage-locationbaseline.provider
dashboard-comparewith-baselinedashboard-comparebaseline
git-diff-targetsincegit-diff-targetsince.target
azure-storage-sasazure-fileshare-sasazure-storage-sas
files-to-excludefiles-to-exclude
test-runnertest-runner