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 +