diff --git a/.github/stryker/Stryker.CI.Config.json b/.github/stryker/Stryker.CI.Config.json
new file mode 100644
index 00000000..2edc3ecf
--- /dev/null
+++ b/.github/stryker/Stryker.CI.Config.json
@@ -0,0 +1,26 @@
+{
+ "stryker-config": {
+ "project-info": {
+ "name": "github.com/Testably/Testably.Expectations",
+ "module": "Testably.Expectations"
+ },
+ "test-projects": [
+ "./Testably.Expectations.Tests/Testably.Expectations.Tests.csproj"
+ ],
+ "project": "Testably.Expectations.csproj",
+ "target-framework": "net8.0",
+ "since": {
+ "target": "main",
+ "enabled": true,
+ "ignore-changes-in": [
+ "**/.github/**/*.*"
+ ]
+ },
+ "reporters": [
+ "html",
+ "progress",
+ "cleartext"
+ ],
+ "mutation-level": "Advanced"
+ }
+}
diff --git a/.github/stryker/Stryker.Config.json b/.github/stryker/Stryker.Config.json
index 189e81d7..d5ecd5cc 100644
--- a/.github/stryker/Stryker.Config.json
+++ b/.github/stryker/Stryker.Config.json
@@ -8,8 +8,10 @@
"./Testably.Expectations.Tests/Testably.Expectations.Tests.csproj"
],
"project": "Testably.Expectations.csproj",
- "target-framework": "net6.0",
+ "target-framework": "net8.0",
"since": {
+ "target": "main",
+ "enabled": false,
"ignore-changes-in": [
"**/.github/**/*.*"
]
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index aaaf804d..6094e05a 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -117,3 +117,29 @@ jobs:
with:
name: Test results (.NET Framework)
path: TestResults
+
+ stryker-ubuntu:
+ name: Stryker mutation testing
+ runs-on: ubuntu-latest
+ timeout-minutes: 300
+ steps:
+ - name: Checkout sources
+ uses: actions/checkout@v4
+ with:
+ fetch-depth: 0
+ - name: Setup .NET
+ uses: actions/setup-dotnet@v4
+ with:
+ dotnet-version: |
+ 8.0.x
+ - name: Install .NET Stryker
+ shell: bash
+ run: |
+ dotnet tool install dotnet-stryker --tool-path ../tools
+ - name: Analyze Testably.Expectations
+ env:
+ STRYKER_DASHBOARD_API_KEY: ${{ secrets.STRYKER_DASHBOARD_API_KEY }}
+ shell: bash
+ run: |
+ cd Tests
+ ../../tools/dotnet-stryker -f ../.github/stryker/Stryker.CI.Config.json -v "${GITHUB_REF#refs/heads/}" -r "Dashboard" -r "cleartext"
diff --git a/.github/workflows/stryker.yml b/.github/workflows/stryker.yml
index 2d5ba761..03f1f22d 100644
--- a/.github/workflows/stryker.yml
+++ b/.github/workflows/stryker.yml
@@ -19,7 +19,7 @@ jobs:
uses: actions/setup-dotnet@v4
with:
dotnet-version: |
- 6.0.x
+ 8.0.x
- name: Install .NET Stryker
shell: bash
run: |
diff --git a/Testably.Expectations.sln b/Testably.Expectations.sln
index 851d0bb4..d3559fe9 100644
--- a/Testably.Expectations.sln
+++ b/Testably.Expectations.sln
@@ -32,7 +32,6 @@ EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "workflows", "workflows", "{61D8BE6C-D930-4B4F-ABA2-586F73ACC2B8}"
ProjectSection(SolutionItems) = preProject
.github\workflows\build.yml = .github\workflows\build.yml
- .github\workflows\ci-stryker.yml = .github\workflows\ci-stryker.yml
.github\workflows\ci.yml = .github\workflows\ci.yml
.github\workflows\pr.yml = .github\workflows\pr.yml
.github\workflows\release.yml = .github\workflows\release.yml
@@ -42,6 +41,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "workflows", "workflows", "{
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "stryker", "stryker", "{CC17C3DF-BF07-4C00-A4C1-9C61A66283F8}"
ProjectSection(SolutionItems) = preProject
+ .github\stryker\Stryker.CI.Config.json = .github\stryker\Stryker.CI.Config.json
.github\stryker\Stryker.Config.json = .github\stryker\Stryker.Config.json
EndProjectSection
EndProject
diff --git a/Tests/Directory.Build.props b/Tests/Directory.Build.props
index 39d2718c..a7cd0530 100644
--- a/Tests/Directory.Build.props
+++ b/Tests/Directory.Build.props
@@ -33,6 +33,10 @@
all
runtime; build; native; contentfiles; analyzers; buildtransitive
+
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+ all
+
diff --git a/Tests/TestFrameworks/Directory.Build.props b/Tests/TestFrameworks/Directory.Build.props
index 5ec0ee89..9bbc6f39 100644
--- a/Tests/TestFrameworks/Directory.Build.props
+++ b/Tests/TestFrameworks/Directory.Build.props
@@ -28,6 +28,10 @@
all
runtime; build; native; contentfiles; analyzers; buildtransitive
+
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+ all
+