From fcc2f6b99a401a89b2a9d067465f5ba7c5ad9b56 Mon Sep 17 00:00:00 2001
From: stijnmoreels <9039753+stijnmoreels@users.noreply.github.com>
Date: Fri, 26 Jul 2024 08:34:21 +0200
Subject: [PATCH 01/68] chore: publish code coverage
---
build/templates/unit-tests.yml | 25 ++++++++++++++++++++-----
1 file changed, 20 insertions(+), 5 deletions(-)
diff --git a/build/templates/unit-tests.yml b/build/templates/unit-tests.yml
index c2bec201..4454665f 100644
--- a/build/templates/unit-tests.yml
+++ b/build/templates/unit-tests.yml
@@ -16,8 +16,23 @@ jobs:
packageType: 'sdk'
version: '$(DotNet.Sdk.VersionBC)'
- - template: test/run-unit-tests.yml@templates
- parameters:
- dotnetSdkVersion: '$(DotNet.Sdk.Version)'
- projectName: '$(Project).Tests.Unit'
- includePreviewVersions: $(DotNet.Sdk.IncludePreviewVersions)
\ No newline at end of file
+ - task: UseDotNet@2
+ displayName: 'Import .NET Core SDK ($(DotNet.Sdk.Version))'
+ inputs:
+ packageType: 'sdk'
+ version: '$(DotNet.Sdk.Version)'
+ includePreviewVersions: $(DotNet.Sdk.IncludePreviewVersions)
+
+ - task: DotNetCoreCLI@2
+ displayName: 'Run unit tests'
+ inputs:
+ command: test
+ projects: 'src/**/$(Project).Tests.Unit.csproj'
+ arguments: '--configuration $(Build.Configuration) -p:coverletOutput=TestResults/ -p:CollectCoverage=true -p:CoverletOutputFormat=\"lcov\" -p:ExcludeByAttribute=\"Obsolete,GeneratedCodeAttribute,CompilerGeneratedAttribute\" -p:Exclude=\"[Arcus.Testing.Tests.*]*\"'
+ nobuild: true
+ publishTestResults: true
+
+ - task: PublishCodeCoverageResults@2
+ inputs:
+ codeCoverageTool: 'Cobertura'
+ summaryFileLocation: src/**/$(Project).Tests.Unit/TestResults/coverage.info
\ No newline at end of file
From 3f8dc62c6dd888af6d2126f2490bd22ce29907bd Mon Sep 17 00:00:00 2001
From: stijnmoreels <9039753+stijnmoreels@users.noreply.github.com>
Date: Fri, 26 Jul 2024 08:35:17 +0200
Subject: [PATCH 02/68] pr-fix: ci trigger
---
build/ci-build.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/build/ci-build.yml b/build/ci-build.yml
index 4b2b2b67..2894bfef 100644
--- a/build/ci-build.yml
+++ b/build/ci-build.yml
@@ -12,7 +12,7 @@ pr:
paths:
include:
- src/*
- - build/ci-build.yml
+ - build/*
parameters:
- name: 'Package.Version.ManualTrigger'
From d90213cf6414e147be8118eb5484adcb86c39e54 Mon Sep 17 00:00:00 2001
From: stijnmoreels <9039753+stijnmoreels@users.noreply.github.com>
Date: Fri, 26 Jul 2024 08:40:35 +0200
Subject: [PATCH 03/68] pr-fix: collect code coverage
---
build/templates/unit-tests.yml | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/build/templates/unit-tests.yml b/build/templates/unit-tests.yml
index 4454665f..d50833a4 100644
--- a/build/templates/unit-tests.yml
+++ b/build/templates/unit-tests.yml
@@ -28,9 +28,10 @@ jobs:
inputs:
command: test
projects: 'src/**/$(Project).Tests.Unit.csproj'
- arguments: '--configuration $(Build.Configuration) -p:coverletOutput=TestResults/ -p:CollectCoverage=true -p:CoverletOutputFormat=\"lcov\" -p:ExcludeByAttribute=\"Obsolete,GeneratedCodeAttribute,CompilerGeneratedAttribute\" -p:Exclude=\"[Arcus.Testing.Tests.*]*\"'
+ arguments: '--configuration $(Build.Configuration) --collect "Code coverage"'
nobuild: true
publishTestResults: true
+ mergeTestResults: true
- task: PublishCodeCoverageResults@2
inputs:
From dd7cb656899d05b0c510647635d9f5309bfbbbe2 Mon Sep 17 00:00:00 2001
From: stijnmoreels <9039753+stijnmoreels@users.noreply.github.com>
Date: Fri, 26 Jul 2024 08:43:13 +0200
Subject: [PATCH 04/68] pr-fix: coverlage update
---
build/templates/unit-tests.yml | 8 +++++---
src/Arcus.Testing.Tests.Unit/coverlet.runsettings | 14 ++++++++++++++
2 files changed, 19 insertions(+), 3 deletions(-)
create mode 100644 src/Arcus.Testing.Tests.Unit/coverlet.runsettings
diff --git a/build/templates/unit-tests.yml b/build/templates/unit-tests.yml
index d50833a4..ff90dadd 100644
--- a/build/templates/unit-tests.yml
+++ b/build/templates/unit-tests.yml
@@ -28,12 +28,14 @@ jobs:
inputs:
command: test
projects: 'src/**/$(Project).Tests.Unit.csproj'
- arguments: '--configuration $(Build.Configuration) --collect "Code coverage"'
+ arguments: '--configuration $(Build.Configuration) --collect:"XPlat Code Coverage" --settings .\src\$($Project).Tests.Unit\coverlet.runsettings'
nobuild: true
publishTestResults: true
mergeTestResults: true
- - task: PublishCodeCoverageResults@2
+ - task: PublishCodeCoverageResults@1
+ displayName: 'Publish code coverage report'
inputs:
codeCoverageTool: 'Cobertura'
- summaryFileLocation: src/**/$(Project).Tests.Unit/TestResults/coverage.info
\ No newline at end of file
+ summaryFileLocation: '$(Agent.TempDirectory)/**/coverage.cobertura.xml'
+ failIfCoverageEmpty: true
\ No newline at end of file
diff --git a/src/Arcus.Testing.Tests.Unit/coverlet.runsettings b/src/Arcus.Testing.Tests.Unit/coverlet.runsettings
new file mode 100644
index 00000000..ef5f74da
--- /dev/null
+++ b/src/Arcus.Testing.Tests.Unit/coverlet.runsettings
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+ cobertura
+ [Arcus.Testing.Tests]*
+ Obsolete,GeneratedCodeAttribute,CompilerGeneratedAttribute
+
+
+
+
+
\ No newline at end of file
From 1c72ec59bb7bb7d38da1e63e6b1953debc7fe9ec Mon Sep 17 00:00:00 2001
From: stijnmoreels <9039753+stijnmoreels@users.noreply.github.com>
Date: Fri, 26 Jul 2024 08:47:29 +0200
Subject: [PATCH 05/68] pr-fix: project var name
---
build/templates/unit-tests.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/build/templates/unit-tests.yml b/build/templates/unit-tests.yml
index ff90dadd..3af69651 100644
--- a/build/templates/unit-tests.yml
+++ b/build/templates/unit-tests.yml
@@ -28,7 +28,7 @@ jobs:
inputs:
command: test
projects: 'src/**/$(Project).Tests.Unit.csproj'
- arguments: '--configuration $(Build.Configuration) --collect:"XPlat Code Coverage" --settings .\src\$($Project).Tests.Unit\coverlet.runsettings'
+ arguments: '--configuration $(Build.Configuration) --collect:"XPlat Code Coverage" --settings .\src\$(Project).Tests.Unit\coverlet.runsettings'
nobuild: true
publishTestResults: true
mergeTestResults: true
From 0493cb9c7fea1a7c785b460c4c87d269f3b3c288 Mon Sep 17 00:00:00 2001
From: stijnmoreels <9039753+stijnmoreels@users.noreply.github.com>
Date: Fri, 26 Jul 2024 08:58:36 +0200
Subject: [PATCH 06/68] pr-fix: add coverage to integration test project
---
build/templates/integration-tests.yml | 39 ++++++++++++++++---
.../Arcus.Testing.Tests.Integration.csproj | 10 ++++-
.../coverlet.runsettings | 14 +++++++
.../Core/PollTests.cs | 3 +-
4 files changed, 59 insertions(+), 7 deletions(-)
create mode 100644 src/Arcus.Testing.Tests.Integration/coverlet.runsettings
diff --git a/build/templates/integration-tests.yml b/build/templates/integration-tests.yml
index da04915f..efba058e 100644
--- a/build/templates/integration-tests.yml
+++ b/build/templates/integration-tests.yml
@@ -37,8 +37,37 @@ jobs:
Set-AzDevOpsVariable -Name 'Arcus.Testing.ServicePrincipal.ClientId' -Value $env:servicePrincipalId
Set-AzDevOpsVariable -Name 'Arcus.Testing.ServicePrincipal.ClientSecret' -Value $env:servicePrincipalKey
- - template: test/run-integration-tests.yml@templates
- parameters:
- dotnetSdkVersion: '$(DotNet.Sdk.Version)'
- projectName: '$(Project).Tests.Integration'
- includePreviewVersions: $(DotNet.Sdk.IncludePreviewVersions)
\ No newline at end of file
+ - task: UseDotNet@2
+ displayName: 'Import .NET Core SDK ($(DotNet.Sdk.Version))'
+ inputs:
+ packageType: 'sdk'
+ version: '$(DotNet.Sdk.Version)'
+ includePreviewVersions: $(DotNet.Sdk.IncludePreviewVersions)
+
+ - task: qetza.replacetokens.replacetokens-task.replacetokens@6
+ displayName: 'Replace integration test tokens'
+ inputs:
+ root: 'src/$(Project).Tests.Integration/'
+ sources: 'appsettings.json'
+ missingVarLog: 'error'
+ logLevel: 'debug'
+ addBOM: true
+ tokenPrefix: '#{'
+ tokenSuffix: '}#'
+
+ - task: DotNetCoreCLI@2
+ displayName: 'Run integration tests'
+ inputs:
+ command: test
+ projects: 'src/**/$(Project).Tests.Integration.csproj'
+ arguments: '--configuration $(Build.Configuration)'
+ nobuild: true
+ publishTestResults: true
+ mergeTestResults: true
+
+ - task: PublishCodeCoverageResults@1
+ displayName: 'Publish code coverage report'
+ inputs:
+ codeCoverageTool: 'Cobertura'
+ summaryFileLocation: '$(Agent.TempDirectory)/**/coverage.cobertura.xml'
+ failIfCoverageEmpty: true
\ No newline at end of file
diff --git a/src/Arcus.Testing.Tests.Integration/Arcus.Testing.Tests.Integration.csproj b/src/Arcus.Testing.Tests.Integration/Arcus.Testing.Tests.Integration.csproj
index c3fab9c6..f9c60df9 100644
--- a/src/Arcus.Testing.Tests.Integration/Arcus.Testing.Tests.Integration.csproj
+++ b/src/Arcus.Testing.Tests.Integration/Arcus.Testing.Tests.Integration.csproj
@@ -1,4 +1,4 @@
-
+
net8.0
@@ -7,6 +7,14 @@
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
diff --git a/src/Arcus.Testing.Tests.Integration/coverlet.runsettings b/src/Arcus.Testing.Tests.Integration/coverlet.runsettings
new file mode 100644
index 00000000..ef5f74da
--- /dev/null
+++ b/src/Arcus.Testing.Tests.Integration/coverlet.runsettings
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+ cobertura
+ [Arcus.Testing.Tests]*
+ Obsolete,GeneratedCodeAttribute,CompilerGeneratedAttribute
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Arcus.Testing.Tests.Unit/Core/PollTests.cs b/src/Arcus.Testing.Tests.Unit/Core/PollTests.cs
index f8758a22..ffe034cb 100644
--- a/src/Arcus.Testing.Tests.Unit/Core/PollTests.cs
+++ b/src/Arcus.Testing.Tests.Unit/Core/PollTests.cs
@@ -100,7 +100,8 @@ await Poll.Target(AlwaysSucceedsResult)
.Timeout(timeout));
// Assert
- Assert.True(stopwatch.Elapsed >= timeout, "stopwatch should at least run until two intervals");
+ stopwatch.Stop();
+ Assert.True(stopwatch.Elapsed >= interval + interval, $"stopwatch should at least run until two intervals: {stopwatch.Elapsed} >= {timeout}");
}
[Fact]
From c11dbdf0420c7b55ee243ad1016b2432e53544ec Mon Sep 17 00:00:00 2001
From: stijnmoreels <9039753+stijnmoreels@users.noreply.github.com>
Date: Fri, 26 Jul 2024 09:02:52 +0200
Subject: [PATCH 07/68] pr-fix: use az devops code coverge
---
.github/workflows/code-coverage.yml | 37 -----------------------------
README.md | 2 +-
2 files changed, 1 insertion(+), 38 deletions(-)
delete mode 100644 .github/workflows/code-coverage.yml
diff --git a/.github/workflows/code-coverage.yml b/.github/workflows/code-coverage.yml
deleted file mode 100644
index f9aaed70..00000000
--- a/.github/workflows/code-coverage.yml
+++ /dev/null
@@ -1,37 +0,0 @@
-name: "Code Coverage"
-
-on:
- push:
- branches: [ main ]
- pull_request:
- # The branches below must be a subset of the branches above
- branches: [ main ]
-
-jobs:
- analyze:
- name: Analyze
- runs-on: ubuntu-latest
- permissions:
- actions: read
- contents: read
-
- strategy:
- fail-fast: false
- matrix:
- language: [ 'csharp' ]
-
- steps:
- - name: Checkout repository
- uses: actions/checkout@v2
- - uses: actions/setup-dotnet@v3
- with:
- dotnet-version: '8.0.x'
- dotnet-quality: 'preview'
-
- - name: Coverlet coverage unit test
- run: dotnet test --framework net8.0 -p:coverletOutput=coverage.json -p:CollectCoverage=true -p:CoverletOutputFormat=\"opencover,json\" -p:ExcludeByAttribute=\"Obsolete,GeneratedCodeAttribute,CompilerGeneratedAttribute\" -p:Exclude=\"[Arcus.Testing.Tests.*]*\" src/Arcus.Testing.Tests.Unit/Arcus.Testing.Tests.Unit.csproj
-
- - name: Upload coverage reports to Codecov
- uses: codecov/codecov-action@v4
- with:
- token: ${{ secrets.CODECOV_TOKEN }}
\ No newline at end of file
diff --git a/README.md b/README.md
index 40d73867..230c7dee 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,7 @@
# Arcus - Testing
[](https://dev.azure.com/codit/Arcus/_build/latest?definitionId=804&branchName=main)
[](https://www.nuget.org/packages/Arcus.Testing.Logging/)
-[](https://codecov.io/gh/arcus-azure/arcus.testing)
+
Reusable testing components for Arcus repo's.
From dae0549b2636970c4c0c6645bbc14364ffd21f55 Mon Sep 17 00:00:00 2001
From: stijnmoreels <9039753+stijnmoreels@users.noreply.github.com>
Date: Fri, 26 Jul 2024 09:03:45 +0200
Subject: [PATCH 08/68] pr-fix: add coverage settings to integration test
project
---
build/templates/integration-tests.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/build/templates/integration-tests.yml b/build/templates/integration-tests.yml
index efba058e..0188144e 100644
--- a/build/templates/integration-tests.yml
+++ b/build/templates/integration-tests.yml
@@ -60,7 +60,7 @@ jobs:
inputs:
command: test
projects: 'src/**/$(Project).Tests.Integration.csproj'
- arguments: '--configuration $(Build.Configuration)'
+ arguments: '--configuration $(Build.Configuration) --collect:"XPlat Code Coverage" --settings .\src\$(Project).Tests.Integration\coverlet.runsettings'
nobuild: true
publishTestResults: true
mergeTestResults: true
From 487a5c9641b09a32f3ac1737976e5d7a5c7280fd Mon Sep 17 00:00:00 2001
From: stijnmoreels <9039753+stijnmoreels@users.noreply.github.com>
Date: Fri, 26 Jul 2024 09:10:19 +0200
Subject: [PATCH 09/68] pr-fix: check integrtion test coverage
---
build/templates/integration-tests.yml | 2 +-
build/templates/unit-tests.yml | 12 ++++++------
2 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/build/templates/integration-tests.yml b/build/templates/integration-tests.yml
index 0188144e..5689cedd 100644
--- a/build/templates/integration-tests.yml
+++ b/build/templates/integration-tests.yml
@@ -65,7 +65,7 @@ jobs:
publishTestResults: true
mergeTestResults: true
- - task: PublishCodeCoverageResults@1
+ - task: PublishCodeCoverageResults@2
displayName: 'Publish code coverage report'
inputs:
codeCoverageTool: 'Cobertura'
diff --git a/build/templates/unit-tests.yml b/build/templates/unit-tests.yml
index 3af69651..78f3215c 100644
--- a/build/templates/unit-tests.yml
+++ b/build/templates/unit-tests.yml
@@ -33,9 +33,9 @@ jobs:
publishTestResults: true
mergeTestResults: true
- - task: PublishCodeCoverageResults@1
- displayName: 'Publish code coverage report'
- inputs:
- codeCoverageTool: 'Cobertura'
- summaryFileLocation: '$(Agent.TempDirectory)/**/coverage.cobertura.xml'
- failIfCoverageEmpty: true
\ No newline at end of file
+ # - task: PublishCodeCoverageResults@2
+ # displayName: 'Publish code coverage report'
+ # inputs:
+ # codeCoverageTool: 'Cobertura'
+ # summaryFileLocation: '$(Agent.TempDirectory)/**/coverage.cobertura.xml'
+ # failIfCoverageEmpty: true
\ No newline at end of file
From b1b699f24149cba13f81d67b26f5ef9b146d85de Mon Sep 17 00:00:00 2001
From: stijnmoreels <9039753+stijnmoreels@users.noreply.github.com>
Date: Fri, 26 Jul 2024 09:22:50 +0200
Subject: [PATCH 10/68] pr-fix: single publish coverage result
---
build/ci-build.yml | 11 +++--------
build/templates/integration-tests.yml | 9 +--------
build/templates/publish-coverage.yml | 16 ++++++++++++++++
build/templates/unit-tests.yml | 9 +--------
4 files changed, 21 insertions(+), 24 deletions(-)
create mode 100644 build/templates/publish-coverage.yml
diff --git a/build/ci-build.yml b/build/ci-build.yml
index 2894bfef..360824db 100644
--- a/build/ci-build.yml
+++ b/build/ci-build.yml
@@ -66,21 +66,16 @@ stages:
targetPath: '$(Pipeline.Workspace)/build'
artifactName: Build
- - stage: UnitTests
- displayName: Unit Tests
+ - stage: Tests
+ displayName: 'Run tests'
dependsOn: Build
condition: succeeded()
jobs:
- template: templates/unit-tests.yml
-
- - stage: IntegrationTests
- displayName: Integration Tests
- dependsOn: Build
- condition: succeeded()
- jobs:
- template: templates/integration-tests.yml
parameters:
azureServiceConnection: '${{ parameters.azureServiceConnection }}'
+ - template: templates/publish-coverage.yml
- stage: ReleaseToMyget
displayName: 'Release to MyGet'
diff --git a/build/templates/integration-tests.yml b/build/templates/integration-tests.yml
index 5689cedd..1b43e4e0 100644
--- a/build/templates/integration-tests.yml
+++ b/build/templates/integration-tests.yml
@@ -63,11 +63,4 @@ jobs:
arguments: '--configuration $(Build.Configuration) --collect:"XPlat Code Coverage" --settings .\src\$(Project).Tests.Integration\coverlet.runsettings'
nobuild: true
publishTestResults: true
- mergeTestResults: true
-
- - task: PublishCodeCoverageResults@2
- displayName: 'Publish code coverage report'
- inputs:
- codeCoverageTool: 'Cobertura'
- summaryFileLocation: '$(Agent.TempDirectory)/**/coverage.cobertura.xml'
- failIfCoverageEmpty: true
\ No newline at end of file
+ mergeTestResults: true
\ No newline at end of file
diff --git a/build/templates/publish-coverage.yml b/build/templates/publish-coverage.yml
new file mode 100644
index 00000000..6e84fbfd
--- /dev/null
+++ b/build/templates/publish-coverage.yml
@@ -0,0 +1,16 @@
+jobs:
+ - job: PublishCoverage
+ displayName: 'Publish code coverage'
+ pool:
+ vmImage: '$(Vm.Image)'
+ steps:
+ - task: DownloadPipelineArtifact@2
+ displayName: 'Download build artifacts'
+ inputs:
+ artifact: 'Build'
+ - task: PublishCodeCoverageResults@2
+ displayName: 'Publish code coverage report'
+ inputs:
+ codeCoverageTool: 'Cobertura'
+ summaryFileLocation: '$(Agent.TempDirectory)/**/coverage.cobertura.xml'
+ failIfCoverageEmpty: true
\ No newline at end of file
diff --git a/build/templates/unit-tests.yml b/build/templates/unit-tests.yml
index 78f3215c..2390fa17 100644
--- a/build/templates/unit-tests.yml
+++ b/build/templates/unit-tests.yml
@@ -31,11 +31,4 @@ jobs:
arguments: '--configuration $(Build.Configuration) --collect:"XPlat Code Coverage" --settings .\src\$(Project).Tests.Unit\coverlet.runsettings'
nobuild: true
publishTestResults: true
- mergeTestResults: true
-
- # - task: PublishCodeCoverageResults@2
- # displayName: 'Publish code coverage report'
- # inputs:
- # codeCoverageTool: 'Cobertura'
- # summaryFileLocation: '$(Agent.TempDirectory)/**/coverage.cobertura.xml'
- # failIfCoverageEmpty: true
\ No newline at end of file
+ mergeTestResults: true
\ No newline at end of file
From 99763f581fa3c9c3e5b08d7d6345ac6d90ed561e Mon Sep 17 00:00:00 2001
From: stijnmoreels <9039753+stijnmoreels@users.noreply.github.com>
Date: Fri, 26 Jul 2024 09:23:41 +0200
Subject: [PATCH 11/68] pr-fix: use single test stage
---
build/ci-build.yml | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/build/ci-build.yml b/build/ci-build.yml
index 360824db..27f98d55 100644
--- a/build/ci-build.yml
+++ b/build/ci-build.yml
@@ -79,9 +79,7 @@ stages:
- stage: ReleaseToMyget
displayName: 'Release to MyGet'
- dependsOn:
- - UnitTests
- - IntegrationTests
+ dependsOn: Tests
condition: succeeded()
jobs:
- job: PushToMyGet
From c7834682809e525950d738f689d3e5f3753764c5 Mon Sep 17 00:00:00 2001
From: stijnmoreels <9039753+stijnmoreels@users.noreply.github.com>
Date: Fri, 26 Jul 2024 09:27:12 +0200
Subject: [PATCH 12/68] pr-fix: adds depends on
---
build/templates/publish-coverage.yml | 3 +++
1 file changed, 3 insertions(+)
diff --git a/build/templates/publish-coverage.yml b/build/templates/publish-coverage.yml
index 6e84fbfd..98ac25c6 100644
--- a/build/templates/publish-coverage.yml
+++ b/build/templates/publish-coverage.yml
@@ -3,6 +3,9 @@ jobs:
displayName: 'Publish code coverage'
pool:
vmImage: '$(Vm.Image)'
+ dependsOn:
+ - UnitTests
+ - IntegrationTests
steps:
- task: DownloadPipelineArtifact@2
displayName: 'Download build artifacts'
From 2b38b41796c9ffa7b0d2368712f65e1b4ea1fb86 Mon Sep 17 00:00:00 2001
From: stijnmoreels <9039753+stijnmoreels@users.noreply.github.com>
Date: Fri, 26 Jul 2024 09:37:06 +0200
Subject: [PATCH 13/68] pr-fix: publish artifacts directly
---
build/templates/integration-tests.yml | 8 +++++++-
build/templates/publish-coverage.yml | 10 +++++++---
build/templates/unit-tests.yml | 8 +++++++-
.../EventHubs/TestEventHubsMessagePumpTests.cs | 2 +-
.../ServiceBus/TestServiceBusMessagePumpTests.cs | 2 +-
5 files changed, 23 insertions(+), 7 deletions(-)
diff --git a/build/templates/integration-tests.yml b/build/templates/integration-tests.yml
index 1b43e4e0..4e680ae0 100644
--- a/build/templates/integration-tests.yml
+++ b/build/templates/integration-tests.yml
@@ -63,4 +63,10 @@ jobs:
arguments: '--configuration $(Build.Configuration) --collect:"XPlat Code Coverage" --settings .\src\$(Project).Tests.Integration\coverlet.runsettings'
nobuild: true
publishTestResults: true
- mergeTestResults: true
\ No newline at end of file
+ mergeTestResults: true
+
+ - task: PublishBuildArtifacts@1
+ displayName: 'Publish Artifact: Coverage-Integration'
+ inputs:
+ ArtifactName: 'Coverage-Integration'
+ PathtoPublish: '$(Build.SourcesDirectory)/src/**/coverage.cobertura.xml'
\ No newline at end of file
diff --git a/build/templates/publish-coverage.yml b/build/templates/publish-coverage.yml
index 98ac25c6..839b6cdf 100644
--- a/build/templates/publish-coverage.yml
+++ b/build/templates/publish-coverage.yml
@@ -8,12 +8,16 @@ jobs:
- IntegrationTests
steps:
- task: DownloadPipelineArtifact@2
- displayName: 'Download build artifacts'
+ displayName: 'Download unit tests artifacts'
inputs:
- artifact: 'Build'
+ artifact: 'Coverage-Unit'
+ - task: DownloadPipelineArtifact@2
+ displayName: 'Download integration artifacts'
+ inputs:
+ artifact: 'Coverage-Integration'
- task: PublishCodeCoverageResults@2
displayName: 'Publish code coverage report'
inputs:
codeCoverageTool: 'Cobertura'
- summaryFileLocation: '$(Agent.TempDirectory)/**/coverage.cobertura.xml'
+ summaryFileLocation: 'src/**/coverage.cobertura.xml'
failIfCoverageEmpty: true
\ No newline at end of file
diff --git a/build/templates/unit-tests.yml b/build/templates/unit-tests.yml
index 2390fa17..52536420 100644
--- a/build/templates/unit-tests.yml
+++ b/build/templates/unit-tests.yml
@@ -31,4 +31,10 @@ jobs:
arguments: '--configuration $(Build.Configuration) --collect:"XPlat Code Coverage" --settings .\src\$(Project).Tests.Unit\coverlet.runsettings'
nobuild: true
publishTestResults: true
- mergeTestResults: true
\ No newline at end of file
+ mergeTestResults:
+
+ - task: PublishBuildArtifacts@1
+ displayName: 'Publish Artifact: Coverage-Unit'
+ inputs:
+ ArtifactName: 'Coverage-Unit'
+ PathtoPublish: '$(Build.SourcesDirectory)/src/**/coverage.cobertura.xml'
\ No newline at end of file
diff --git a/src/Arcus.Testing.Tests.Unit/Messaging/EventHubs/TestEventHubsMessagePumpTests.cs b/src/Arcus.Testing.Tests.Unit/Messaging/EventHubs/TestEventHubsMessagePumpTests.cs
index 13bb0ed2..b6a99a10 100644
--- a/src/Arcus.Testing.Tests.Unit/Messaging/EventHubs/TestEventHubsMessagePumpTests.cs
+++ b/src/Arcus.Testing.Tests.Unit/Messaging/EventHubs/TestEventHubsMessagePumpTests.cs
@@ -162,7 +162,7 @@ private async Task StartNewHostAsync(
{
IHostBuilder builder =
Host.CreateDefaultBuilder()
- .ConfigureLogging(logging => logging.AddXunitTestLogging(_outputWriter))
+ .ConfigureLogging(logging => logging.ClearProviders().AddXunitTestLogging(_outputWriter))
.ConfigureServices(configureServices);
using (IHost host = builder.Build())
diff --git a/src/Arcus.Testing.Tests.Unit/Messaging/ServiceBus/TestServiceBusMessagePumpTests.cs b/src/Arcus.Testing.Tests.Unit/Messaging/ServiceBus/TestServiceBusMessagePumpTests.cs
index 7abf9834..edd71ca2 100644
--- a/src/Arcus.Testing.Tests.Unit/Messaging/ServiceBus/TestServiceBusMessagePumpTests.cs
+++ b/src/Arcus.Testing.Tests.Unit/Messaging/ServiceBus/TestServiceBusMessagePumpTests.cs
@@ -174,7 +174,7 @@ private async Task StartNewHostAsync(
{
IHostBuilder builder =
Host.CreateDefaultBuilder()
- .ConfigureLogging(logging => logging.AddXunitTestLogging(_outputWriter))
+ .ConfigureLogging(logging => logging.ClearProviders().AddXunitTestLogging(_outputWriter))
.ConfigureServices(configureServices);
using (IHost host = builder.Build())
From 586fe7b44b8095f0db65462cb7d8111af8bc8ef0 Mon Sep 17 00:00:00 2001
From: stijnmoreels <9039753+stijnmoreels@users.noreply.github.com>
Date: Fri, 26 Jul 2024 10:09:25 +0200
Subject: [PATCH 14/68] pr-fix: publish artifacts directly
---
build/templates/integration-tests.yml | 2 +-
build/templates/unit-tests.yml | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/build/templates/integration-tests.yml b/build/templates/integration-tests.yml
index 4e680ae0..fe79dbd9 100644
--- a/build/templates/integration-tests.yml
+++ b/build/templates/integration-tests.yml
@@ -69,4 +69,4 @@ jobs:
displayName: 'Publish Artifact: Coverage-Integration'
inputs:
ArtifactName: 'Coverage-Integration'
- PathtoPublish: '$(Build.SourcesDirectory)/src/**/coverage.cobertura.xml'
\ No newline at end of file
+ PathtoPublish: '$(Build.ArtifactStagingDirectory)'
\ No newline at end of file
diff --git a/build/templates/unit-tests.yml b/build/templates/unit-tests.yml
index 52536420..0085a5b2 100644
--- a/build/templates/unit-tests.yml
+++ b/build/templates/unit-tests.yml
@@ -37,4 +37,4 @@ jobs:
displayName: 'Publish Artifact: Coverage-Unit'
inputs:
ArtifactName: 'Coverage-Unit'
- PathtoPublish: '$(Build.SourcesDirectory)/src/**/coverage.cobertura.xml'
\ No newline at end of file
+ PathtoPublish: '$(Build.ArtifactStagingDirectory)'
\ No newline at end of file
From aa45a088ff42de036b52b9a763f0cd6ea0ee9a10 Mon Sep 17 00:00:00 2001
From: stijnmoreels <9039753+stijnmoreels@users.noreply.github.com>
Date: Fri, 26 Jul 2024 10:20:34 +0200
Subject: [PATCH 15/68] pr-fix: publish artifacts directly
---
build/templates/integration-tests.yml | 15 ++++++++++-----
build/templates/publish-coverage.yml | 8 ++++++--
build/templates/unit-tests.yml | 14 ++++++++++----
3 files changed, 26 insertions(+), 11 deletions(-)
diff --git a/build/templates/integration-tests.yml b/build/templates/integration-tests.yml
index fe79dbd9..f62299e9 100644
--- a/build/templates/integration-tests.yml
+++ b/build/templates/integration-tests.yml
@@ -64,9 +64,14 @@ jobs:
nobuild: true
publishTestResults: true
mergeTestResults: true
-
- - task: PublishBuildArtifacts@1
- displayName: 'Publish Artifact: Coverage-Integration'
+
+ - task: CopyFiles@2
+ displayName: 'Copy build artifacts'
+ inputs:
+ contents: 'src/**/coverage.cobertura.xml'
+ targetFolder: '$(Pipeline.Workspace)/coverage-integration'
+ - task: PublishPipelineArtifact@0
+ displayName: 'Publish build artifacts'
inputs:
- ArtifactName: 'Coverage-Integration'
- PathtoPublish: '$(Build.ArtifactStagingDirectory)'
\ No newline at end of file
+ targetPath: '$(Pipeline.Workspace)/coverage-integration'
+ artifactName: Coverage-Integration
\ No newline at end of file
diff --git a/build/templates/publish-coverage.yml b/build/templates/publish-coverage.yml
index 839b6cdf..948ff642 100644
--- a/build/templates/publish-coverage.yml
+++ b/build/templates/publish-coverage.yml
@@ -8,13 +8,17 @@ jobs:
- IntegrationTests
steps:
- task: DownloadPipelineArtifact@2
- displayName: 'Download unit tests artifacts'
+ displayName: 'Download coverage unit artifacts'
inputs:
artifact: 'Coverage-Unit'
+ path: '$(Build.SourcesDirectory)/coverage-unit'
+
- task: DownloadPipelineArtifact@2
- displayName: 'Download integration artifacts'
+ displayName: 'Download coverage integration artifacts'
inputs:
artifact: 'Coverage-Integration'
+ path: '$(Build.SourcesDirectory)/coverage-integration'
+
- task: PublishCodeCoverageResults@2
displayName: 'Publish code coverage report'
inputs:
diff --git a/build/templates/unit-tests.yml b/build/templates/unit-tests.yml
index 0085a5b2..5c63641e 100644
--- a/build/templates/unit-tests.yml
+++ b/build/templates/unit-tests.yml
@@ -33,8 +33,14 @@ jobs:
publishTestResults: true
mergeTestResults:
- - task: PublishBuildArtifacts@1
- displayName: 'Publish Artifact: Coverage-Unit'
+ - task: CopyFiles@2
+ displayName: 'Copy build artifacts'
inputs:
- ArtifactName: 'Coverage-Unit'
- PathtoPublish: '$(Build.ArtifactStagingDirectory)'
\ No newline at end of file
+ contents: 'src/**/coverage.cobertura.xml'
+ targetFolder: '$(Pipeline.Workspace)/coverage-unit'
+
+ - task: PublishPipelineArtifact@0
+ displayName: 'Publish build artifacts'
+ inputs:
+ targetPath: '$(Pipeline.Workspace)/coverage-unit'
+ artifactName: Coverage-Unit
\ No newline at end of file
From 04130fb42595ff0c33556ae2357aaec2103c00eb Mon Sep 17 00:00:00 2001
From: stijnmoreels <9039753+stijnmoreels@users.noreply.github.com>
Date: Fri, 26 Jul 2024 10:30:55 +0200
Subject: [PATCH 16/68] pr-fix: publish artifacts directly
---
build/templates/integration-tests.yml | 2 +-
build/templates/unit-tests.yml | 2 +-
src/Arcus.Testing.Tests.Integration/coverlet.runsettings | 3 +++
src/Arcus.Testing.Tests.Unit/coverlet.runsettings | 3 +++
4 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/build/templates/integration-tests.yml b/build/templates/integration-tests.yml
index f62299e9..143bf5e5 100644
--- a/build/templates/integration-tests.yml
+++ b/build/templates/integration-tests.yml
@@ -68,7 +68,7 @@ jobs:
- task: CopyFiles@2
displayName: 'Copy build artifacts'
inputs:
- contents: 'src/**/coverage.cobertura.xml'
+ contents: 'src/**/TestResults/*'
targetFolder: '$(Pipeline.Workspace)/coverage-integration'
- task: PublishPipelineArtifact@0
displayName: 'Publish build artifacts'
diff --git a/build/templates/unit-tests.yml b/build/templates/unit-tests.yml
index 5c63641e..7db13225 100644
--- a/build/templates/unit-tests.yml
+++ b/build/templates/unit-tests.yml
@@ -36,7 +36,7 @@ jobs:
- task: CopyFiles@2
displayName: 'Copy build artifacts'
inputs:
- contents: 'src/**/coverage.cobertura.xml'
+ contents: 'src/**/TestResults/*'
targetFolder: '$(Pipeline.Workspace)/coverage-unit'
- task: PublishPipelineArtifact@0
diff --git a/src/Arcus.Testing.Tests.Integration/coverlet.runsettings b/src/Arcus.Testing.Tests.Integration/coverlet.runsettings
index ef5f74da..d067066c 100644
--- a/src/Arcus.Testing.Tests.Integration/coverlet.runsettings
+++ b/src/Arcus.Testing.Tests.Integration/coverlet.runsettings
@@ -1,5 +1,8 @@
+
+ .\TestResults
+
diff --git a/src/Arcus.Testing.Tests.Unit/coverlet.runsettings b/src/Arcus.Testing.Tests.Unit/coverlet.runsettings
index ef5f74da..d067066c 100644
--- a/src/Arcus.Testing.Tests.Unit/coverlet.runsettings
+++ b/src/Arcus.Testing.Tests.Unit/coverlet.runsettings
@@ -1,5 +1,8 @@
+
+ .\TestResults
+
From 0e93f4a41ace6ec016173665ddc99434e593bf88 Mon Sep 17 00:00:00 2001
From: stijnmoreels <9039753+stijnmoreels@users.noreply.github.com>
Date: Fri, 26 Jul 2024 10:36:15 +0200
Subject: [PATCH 17/68] pr-fix: publish artifacts directly
---
build/templates/integration-tests.yml | 3 ++-
build/templates/unit-tests.yml | 2 +-
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/build/templates/integration-tests.yml b/build/templates/integration-tests.yml
index 143bf5e5..cd5ea035 100644
--- a/build/templates/integration-tests.yml
+++ b/build/templates/integration-tests.yml
@@ -68,8 +68,9 @@ jobs:
- task: CopyFiles@2
displayName: 'Copy build artifacts'
inputs:
- contents: 'src/**/TestResults/*'
+ contents: '$(Agent.TempDirectory)/**/coverage.cobertura.xml'
targetFolder: '$(Pipeline.Workspace)/coverage-integration'
+
- task: PublishPipelineArtifact@0
displayName: 'Publish build artifacts'
inputs:
diff --git a/build/templates/unit-tests.yml b/build/templates/unit-tests.yml
index 7db13225..5313434b 100644
--- a/build/templates/unit-tests.yml
+++ b/build/templates/unit-tests.yml
@@ -36,7 +36,7 @@ jobs:
- task: CopyFiles@2
displayName: 'Copy build artifacts'
inputs:
- contents: 'src/**/TestResults/*'
+ contents: '$(Agent.TempDirectory)/**/coverage.cobertura.xml'
targetFolder: '$(Pipeline.Workspace)/coverage-unit'
- task: PublishPipelineArtifact@0
From f286876de686ab0965b6633c4632812983813d3f Mon Sep 17 00:00:00 2001
From: stijnmoreels <9039753+stijnmoreels@users.noreply.github.com>
Date: Fri, 26 Jul 2024 18:20:57 +0200
Subject: [PATCH 18/68] pr-fix: single test job
---
build/ci-build.yml | 5 ++--
build/templates/integration-tests.yml | 27 +++++++++++--------
.../coverlet.runsettings | 17 ------------
.../coverlet.runsettings | 17 ------------
4 files changed, 18 insertions(+), 48 deletions(-)
delete mode 100644 src/Arcus.Testing.Tests.Integration/coverlet.runsettings
delete mode 100644 src/Arcus.Testing.Tests.Unit/coverlet.runsettings
diff --git a/build/ci-build.yml b/build/ci-build.yml
index 27f98d55..fd16d0f4 100644
--- a/build/ci-build.yml
+++ b/build/ci-build.yml
@@ -67,15 +67,14 @@ stages:
artifactName: Build
- stage: Tests
- displayName: 'Run tests'
dependsOn: Build
condition: succeeded()
jobs:
- - template: templates/unit-tests.yml
+ # - template: templates/unit-tests.yml
- template: templates/integration-tests.yml
parameters:
azureServiceConnection: '${{ parameters.azureServiceConnection }}'
- - template: templates/publish-coverage.yml
+ # - template: templates/publish-coverage.yml
- stage: ReleaseToMyget
displayName: 'Release to MyGet'
diff --git a/build/templates/integration-tests.yml b/build/templates/integration-tests.yml
index cd5ea035..8a89ec32 100644
--- a/build/templates/integration-tests.yml
+++ b/build/templates/integration-tests.yml
@@ -44,6 +44,16 @@ jobs:
version: '$(DotNet.Sdk.Version)'
includePreviewVersions: $(DotNet.Sdk.IncludePreviewVersions)
+ - task: DotNetCoreCLI@2
+ displayName: 'Run unit tests'
+ inputs:
+ command: test
+ projects: 'src/**/$(Project).Tests.Unit.csproj'
+ arguments: '--configuration $(Build.Configuration) --collect:"XPlat Code Coverage"'
+ nobuild: true
+ publishTestResults: true
+ mergeTestResults: true
+
- task: qetza.replacetokens.replacetokens-task.replacetokens@6
displayName: 'Replace integration test tokens'
inputs:
@@ -60,19 +70,14 @@ jobs:
inputs:
command: test
projects: 'src/**/$(Project).Tests.Integration.csproj'
- arguments: '--configuration $(Build.Configuration) --collect:"XPlat Code Coverage" --settings .\src\$(Project).Tests.Integration\coverlet.runsettings'
+ arguments: '--configuration $(Build.Configuration) --collect:"XPlat Code Coverage"'
nobuild: true
publishTestResults: true
mergeTestResults: true
- - task: CopyFiles@2
- displayName: 'Copy build artifacts'
- inputs:
- contents: '$(Agent.TempDirectory)/**/coverage.cobertura.xml'
- targetFolder: '$(Pipeline.Workspace)/coverage-integration'
-
- - task: PublishPipelineArtifact@0
- displayName: 'Publish build artifacts'
+ - task: reportgenerator@5
+ displayName: ReportGenerator
inputs:
- targetPath: '$(Pipeline.Workspace)/coverage-integration'
- artifactName: Coverage-Integration
\ No newline at end of file
+ reports: )/**/coverage.cobertura.xml'
+ targetdir: coveragereport
+ reporttypes: Html;HtmlInline_AzurePipelines_Dark
\ No newline at end of file
diff --git a/src/Arcus.Testing.Tests.Integration/coverlet.runsettings b/src/Arcus.Testing.Tests.Integration/coverlet.runsettings
deleted file mode 100644
index d067066c..00000000
--- a/src/Arcus.Testing.Tests.Integration/coverlet.runsettings
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
- .\TestResults
-
-
-
-
-
- cobertura
- [Arcus.Testing.Tests]*
- Obsolete,GeneratedCodeAttribute,CompilerGeneratedAttribute
-
-
-
-
-
\ No newline at end of file
diff --git a/src/Arcus.Testing.Tests.Unit/coverlet.runsettings b/src/Arcus.Testing.Tests.Unit/coverlet.runsettings
deleted file mode 100644
index d067066c..00000000
--- a/src/Arcus.Testing.Tests.Unit/coverlet.runsettings
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
- .\TestResults
-
-
-
-
-
- cobertura
- [Arcus.Testing.Tests]*
- Obsolete,GeneratedCodeAttribute,CompilerGeneratedAttribute
-
-
-
-
-
\ No newline at end of file
From b0eee3ef70dc2d356fc50398f7b2acd6ad5da139 Mon Sep 17 00:00:00 2001
From: stijnmoreels <9039753+stijnmoreels@users.noreply.github.com>
Date: Fri, 26 Jul 2024 18:21:21 +0200
Subject: [PATCH 19/68] pr-fix: single test job
---
build/templates/integration-tests.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/build/templates/integration-tests.yml b/build/templates/integration-tests.yml
index 8a89ec32..805efeff 100644
--- a/build/templates/integration-tests.yml
+++ b/build/templates/integration-tests.yml
@@ -78,6 +78,6 @@ jobs:
- task: reportgenerator@5
displayName: ReportGenerator
inputs:
- reports: )/**/coverage.cobertura.xml'
+ reports: /**/coverage.cobertura.xml'
targetdir: coveragereport
reporttypes: Html;HtmlInline_AzurePipelines_Dark
\ No newline at end of file
From fe7fbda1bf00bc35d87a9dde3bae67633e724b44 Mon Sep 17 00:00:00 2001
From: stijnmoreels <9039753+stijnmoreels@users.noreply.github.com>
Date: Fri, 26 Jul 2024 18:28:45 +0200
Subject: [PATCH 20/68] pr-fix: remove msbuild from csproj
---
.../Arcus.Testing.Tests.Integration.csproj | 4 ----
src/Arcus.Testing.Tests.Unit/Arcus.Testing.Tests.Unit.csproj | 4 ----
2 files changed, 8 deletions(-)
diff --git a/src/Arcus.Testing.Tests.Integration/Arcus.Testing.Tests.Integration.csproj b/src/Arcus.Testing.Tests.Integration/Arcus.Testing.Tests.Integration.csproj
index f9c60df9..73d2cbf2 100644
--- a/src/Arcus.Testing.Tests.Integration/Arcus.Testing.Tests.Integration.csproj
+++ b/src/Arcus.Testing.Tests.Integration/Arcus.Testing.Tests.Integration.csproj
@@ -11,10 +11,6 @@
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
- all
- runtime; build; native; contentfiles; analyzers; buildtransitive
-
diff --git a/src/Arcus.Testing.Tests.Unit/Arcus.Testing.Tests.Unit.csproj b/src/Arcus.Testing.Tests.Unit/Arcus.Testing.Tests.Unit.csproj
index 0bbbf51e..7d82de78 100644
--- a/src/Arcus.Testing.Tests.Unit/Arcus.Testing.Tests.Unit.csproj
+++ b/src/Arcus.Testing.Tests.Unit/Arcus.Testing.Tests.Unit.csproj
@@ -11,10 +11,6 @@
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
- all
- runtime; build; native; contentfiles; analyzers; buildtransitive
-
From 38aef37708cc6f076dc75842eede50d966aec8eb Mon Sep 17 00:00:00 2001
From: stijnmoreels <9039753+stijnmoreels@users.noreply.github.com>
Date: Fri, 26 Jul 2024 18:35:43 +0200
Subject: [PATCH 21/68] pr-fix: force result directory
---
build/templates/integration-tests.yml | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/build/templates/integration-tests.yml b/build/templates/integration-tests.yml
index 805efeff..14be049f 100644
--- a/build/templates/integration-tests.yml
+++ b/build/templates/integration-tests.yml
@@ -49,7 +49,7 @@ jobs:
inputs:
command: test
projects: 'src/**/$(Project).Tests.Unit.csproj'
- arguments: '--configuration $(Build.Configuration) --collect:"XPlat Code Coverage"'
+ arguments: '--configuration $(Build.Configuration) --collect:"XPlat Code Coverage" --results-directory $(Agent.TempDirectory)'
nobuild: true
publishTestResults: true
mergeTestResults: true
@@ -70,7 +70,7 @@ jobs:
inputs:
command: test
projects: 'src/**/$(Project).Tests.Integration.csproj'
- arguments: '--configuration $(Build.Configuration) --collect:"XPlat Code Coverage"'
+ arguments: '--configuration $(Build.Configuration) --collect:"XPlat Code Coverage" --results-directory $(Agent.TempDirectory)'
nobuild: true
publishTestResults: true
mergeTestResults: true
@@ -78,6 +78,6 @@ jobs:
- task: reportgenerator@5
displayName: ReportGenerator
inputs:
- reports: /**/coverage.cobertura.xml'
+ reports: '$(Agent.TempDirectory)/**/coverage.cobertura.xml'
targetdir: coveragereport
reporttypes: Html;HtmlInline_AzurePipelines_Dark
\ No newline at end of file
From b3010d1bd6ce92d25b50fe986c3ee2b4d36c1419 Mon Sep 17 00:00:00 2001
From: stijnmoreels <9039753+stijnmoreels@users.noreply.github.com>
Date: Fri, 26 Jul 2024 18:40:13 +0200
Subject: [PATCH 22/68] pr-fix: force result directory
---
build/templates/integration-tests.yml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/build/templates/integration-tests.yml b/build/templates/integration-tests.yml
index 14be049f..1e56aa04 100644
--- a/build/templates/integration-tests.yml
+++ b/build/templates/integration-tests.yml
@@ -49,7 +49,7 @@ jobs:
inputs:
command: test
projects: 'src/**/$(Project).Tests.Unit.csproj'
- arguments: '--configuration $(Build.Configuration) --collect:"XPlat Code Coverage" --results-directory $(Agent.TempDirectory)'
+ arguments: '--configuration $(Build.Configuration) --collect:"XPlat Code Coverage"'
nobuild: true
publishTestResults: true
mergeTestResults: true
@@ -70,7 +70,7 @@ jobs:
inputs:
command: test
projects: 'src/**/$(Project).Tests.Integration.csproj'
- arguments: '--configuration $(Build.Configuration) --collect:"XPlat Code Coverage" --results-directory $(Agent.TempDirectory)'
+ arguments: '--configuration $(Build.Configuration) --collect:"XPlat Code Coverage"'
nobuild: true
publishTestResults: true
mergeTestResults: true
From 0aa25d6c23c4601b502bbf5112fbb0121eb4ac63 Mon Sep 17 00:00:00 2001
From: stijnmoreels <9039753+stijnmoreels@users.noreply.github.com>
Date: Fri, 26 Jul 2024 18:47:01 +0200
Subject: [PATCH 23/68] pr-fix: explicitly publish results
---
build/templates/integration-tests.yml | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/build/templates/integration-tests.yml b/build/templates/integration-tests.yml
index 1e56aa04..f2e9c32e 100644
--- a/build/templates/integration-tests.yml
+++ b/build/templates/integration-tests.yml
@@ -80,4 +80,5 @@ jobs:
inputs:
reports: '$(Agent.TempDirectory)/**/coverage.cobertura.xml'
targetdir: coveragereport
- reporttypes: Html;HtmlInline_AzurePipelines_Dark
\ No newline at end of file
+ reporttypes: Html;HtmlInline_AzurePipelines_Dark
+ publishCodeCoverageResults: true
\ No newline at end of file
From ff0cbcf6cbe1023633f2cb52f04de5c99c77411f Mon Sep 17 00:00:00 2001
From: stijnmoreels <9039753+stijnmoreels@users.noreply.github.com>
Date: Fri, 26 Jul 2024 18:53:43 +0200
Subject: [PATCH 24/68] pr-fix: Cobertura type
---
build/templates/integration-tests.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/build/templates/integration-tests.yml b/build/templates/integration-tests.yml
index f2e9c32e..e1720b2c 100644
--- a/build/templates/integration-tests.yml
+++ b/build/templates/integration-tests.yml
@@ -80,5 +80,5 @@ jobs:
inputs:
reports: '$(Agent.TempDirectory)/**/coverage.cobertura.xml'
targetdir: coveragereport
- reporttypes: Html;HtmlInline_AzurePipelines_Dark
+ reporttypes: Html;HtmlInline_AzurePipelines_Dark;Cobertura
publishCodeCoverageResults: true
\ No newline at end of file
From 7ec78514c5d63b3b01a112cb67ee821b0c9f165d Mon Sep 17 00:00:00 2001
From: Stijn Moreels <9039753+stijnmoreels@users.noreply.github.com>
Date: Sat, 27 Jul 2024 05:49:58 +0200
Subject: [PATCH 25/68] Update publish-coverage.yml
---
build/templates/publish-coverage.yml | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/build/templates/publish-coverage.yml b/build/templates/publish-coverage.yml
index 948ff642..578c640a 100644
--- a/build/templates/publish-coverage.yml
+++ b/build/templates/publish-coverage.yml
@@ -24,4 +24,11 @@ jobs:
inputs:
codeCoverageTool: 'Cobertura'
summaryFileLocation: 'src/**/coverage.cobertura.xml'
- failIfCoverageEmpty: true
\ No newline at end of file
+ failIfCoverageEmpty: true
+
+ - task: BuildQualityChecks@8
+ displayName: 'Check code quality'
+ inputs:
+ checkCoverage: true
+ coverageFailOption: fixed
+ coverageThreshold: 70
From 6c88c97d8a505a1b84e88af4d33ac438c89655c6 Mon Sep 17 00:00:00 2001
From: stijnmoreels <9039753+stijnmoreels@users.noreply.github.com>
Date: Sat, 27 Jul 2024 18:25:18 +0200
Subject: [PATCH 26/68] pr-fix: add gh comment
---
build/templates/publish-coverage.yml | 27 ++++++++++++++-------------
build/templates/unit-tests.yml | 2 +-
2 files changed, 15 insertions(+), 14 deletions(-)
diff --git a/build/templates/publish-coverage.yml b/build/templates/publish-coverage.yml
index 578c640a..620b5699 100644
--- a/build/templates/publish-coverage.yml
+++ b/build/templates/publish-coverage.yml
@@ -11,24 +11,25 @@ jobs:
displayName: 'Download coverage unit artifacts'
inputs:
artifact: 'Coverage-Unit'
- path: '$(Build.SourcesDirectory)/coverage-unit'
+ path: '$(Build.SourcesDirectory)/TestResults'
- task: DownloadPipelineArtifact@2
displayName: 'Download coverage integration artifacts'
inputs:
artifact: 'Coverage-Integration'
- path: '$(Build.SourcesDirectory)/coverage-integration'
+ path: '$(Build.SourcesDirectory)/TestResults'
- - task: PublishCodeCoverageResults@2
- displayName: 'Publish code coverage report'
+ - task: reportgenerator@5
+ displayName: ReportGenerator
inputs:
- codeCoverageTool: 'Cobertura'
- summaryFileLocation: 'src/**/coverage.cobertura.xml'
- failIfCoverageEmpty: true
+ reports: '$(Build.SourcesDirectory)/TestResults/**/coverage.cobertura.xml'
+ targetdir: coveragereport
+ reporttypes: Html;HtmlInline_AzurePipelines_Dark
+ publishCodeCoverageResults: true
- - task: BuildQualityChecks@8
- displayName: 'Check code quality'
- inputs:
- checkCoverage: true
- coverageFailOption: fixed
- coverageThreshold: 70
+ - task: BuildQualityChecks@8
+ displayName: 'Check code quality'
+ inputs:
+ checkCoverage: true
+ coverageFailOption: fixed
+ coverageThreshold: 70
diff --git a/build/templates/unit-tests.yml b/build/templates/unit-tests.yml
index 5313434b..4ec62dde 100644
--- a/build/templates/unit-tests.yml
+++ b/build/templates/unit-tests.yml
@@ -28,7 +28,7 @@ jobs:
inputs:
command: test
projects: 'src/**/$(Project).Tests.Unit.csproj'
- arguments: '--configuration $(Build.Configuration) --collect:"XPlat Code Coverage" --settings .\src\$(Project).Tests.Unit\coverlet.runsettings'
+ arguments: '--configuration $(Build.Configuration) --collect:"XPlat Code Coverage"'
nobuild: true
publishTestResults: true
mergeTestResults:
From d01b73c6f771e529fae3175565c4cc2229b1197d Mon Sep 17 00:00:00 2001
From: stijnmoreels <9039753+stijnmoreels@users.noreply.github.com>
Date: Sat, 27 Jul 2024 18:29:11 +0200
Subject: [PATCH 27/68] pr-fix: add summary report
---
build/templates/integration-tests.yml | 41 +++++++++++++++++++++++++--
1 file changed, 39 insertions(+), 2 deletions(-)
diff --git a/build/templates/integration-tests.yml b/build/templates/integration-tests.yml
index e1720b2c..ecb97336 100644
--- a/build/templates/integration-tests.yml
+++ b/build/templates/integration-tests.yml
@@ -80,5 +80,42 @@ jobs:
inputs:
reports: '$(Agent.TempDirectory)/**/coverage.cobertura.xml'
targetdir: coveragereport
- reporttypes: Html;HtmlInline_AzurePipelines_Dark;Cobertura
- publishCodeCoverageResults: true
\ No newline at end of file
+ reporttypes: Html;HtmlInline_AzurePipelines_Dark;Cobertura;MarkdownDeltaSummary
+ publishCodeCoverageResults: true
+
+ - task: BuildQualityChecks@8
+ displayName: 'Check code quality'
+ inputs:
+ checkCoverage: true
+ coverageFailOption: fixed
+ coverageThreshold: 80
+
+ - powershell: |
+ # Check if GitHub CLI is installed
+ if (-not (Get-Command gh -ErrorAction SilentlyContinue)) {
+ # Download and install GitHub CLI
+ Invoke-WebRequest -Uri "https://github.com/cli/cli/releases/latest/download/gh_2.0.0_windows_amd64.msi" -OutFile "$env:TEMP\gh.msi"
+ Start-Process msiexec.exe -ArgumentList "/i $env:TEMP\gh.msi /quiet /norestart" -Wait
+ }
+
+ # Authenticate with GitHub CLI
+ $env:GITHUB_TOKEN = "${{ secrets.GITHUB_TOKEN }}"
+ echo $env:GITHUB_TOKEN | gh auth login --with-token
+
+ # Check for existing code coverage comment
+ $prNumber = ${{ github.event.pull_request.number }}
+ $existingComment = gh pr view $prNumber --json comments --jq '.comments[].body' | Select-String -Pattern 'Delta Summary'
+
+ $coverage_report = Get-Content "$(Build.SourcesDirectory)/coveragereport/Summary.md" -Raw
+
+ # Post or update the comment with the code coverage report
+ if (-not $existingComment) {
+ gh pr comment $prNumber --body $coverage_report
+ } else {
+ $commentId = gh pr view $prNumber --json comments --jq '.comments[] | select(.body | contains("Delta Summary")) | .id'
+ gh pr comment update $commentId --body $coverage_report
+ }
+ displayName: 'Post Code Coverage Report on PR'
+ env:
+ GITHUB_TOKEN: $(GITHUB_TOKEN)
+
\ No newline at end of file
From 7a9c5c45770ad3c26a144e91364cfebbe9db42de Mon Sep 17 00:00:00 2001
From: stijnmoreels <9039753+stijnmoreels@users.noreply.github.com>
Date: Sat, 27 Jul 2024 18:30:20 +0200
Subject: [PATCH 28/68] pr-fix: secrets
---
build/templates/integration-tests.yml | 1 -
1 file changed, 1 deletion(-)
diff --git a/build/templates/integration-tests.yml b/build/templates/integration-tests.yml
index ecb97336..e51ef94b 100644
--- a/build/templates/integration-tests.yml
+++ b/build/templates/integration-tests.yml
@@ -99,7 +99,6 @@ jobs:
}
# Authenticate with GitHub CLI
- $env:GITHUB_TOKEN = "${{ secrets.GITHUB_TOKEN }}"
echo $env:GITHUB_TOKEN | gh auth login --with-token
# Check for existing code coverage comment
From 7564b53a4fc129d5be3ffc52b3136ec77d2cdc70 Mon Sep 17 00:00:00 2001
From: stijnmoreels <9039753+stijnmoreels@users.noreply.github.com>
Date: Sat, 27 Jul 2024 18:32:39 +0200
Subject: [PATCH 29/68] pr-fix: pr number
---
build/templates/integration-tests.yml | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/build/templates/integration-tests.yml b/build/templates/integration-tests.yml
index e51ef94b..18f37814 100644
--- a/build/templates/integration-tests.yml
+++ b/build/templates/integration-tests.yml
@@ -102,7 +102,7 @@ jobs:
echo $env:GITHUB_TOKEN | gh auth login --with-token
# Check for existing code coverage comment
- $prNumber = ${{ github.event.pull_request.number }}
+ $prNumber = $env:System.PullRequest.PullRequestNumber
$existingComment = gh pr view $prNumber --json comments --jq '.comments[].body' | Select-String -Pattern 'Delta Summary'
$coverage_report = Get-Content "$(Build.SourcesDirectory)/coveragereport/Summary.md" -Raw
@@ -117,4 +117,5 @@ jobs:
displayName: 'Post Code Coverage Report on PR'
env:
GITHUB_TOKEN: $(GITHUB_TOKEN)
+ System.PullRequest.PullRequestNumber: $(System.PullRequest.PullRequestNumber)
\ No newline at end of file
From 9e2476ff48322260cee624bc2789973f10600673 Mon Sep 17 00:00:00 2001
From: stijnmoreels <9039753+stijnmoreels@users.noreply.github.com>
Date: Sat, 27 Jul 2024 18:35:06 +0200
Subject: [PATCH 30/68] pr-fix: pr number
---
build/templates/integration-tests.yml | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/build/templates/integration-tests.yml b/build/templates/integration-tests.yml
index 18f37814..be916cdc 100644
--- a/build/templates/integration-tests.yml
+++ b/build/templates/integration-tests.yml
@@ -83,12 +83,12 @@ jobs:
reporttypes: Html;HtmlInline_AzurePipelines_Dark;Cobertura;MarkdownDeltaSummary
publishCodeCoverageResults: true
- - task: BuildQualityChecks@8
- displayName: 'Check code quality'
- inputs:
- checkCoverage: true
- coverageFailOption: fixed
- coverageThreshold: 80
+ # - task: BuildQualityChecks@8
+ # displayName: 'Check code quality'
+ # inputs:
+ # checkCoverage: true
+ # coverageFailOption: fixed
+ # coverageThreshold: 80
- powershell: |
# Check if GitHub CLI is installed
From 2c9563cf49b2f0b5643f22d64cb1aee0c2c270e6 Mon Sep 17 00:00:00 2001
From: stijnmoreels <9039753+stijnmoreels@users.noreply.github.com>
Date: Sat, 27 Jul 2024 18:44:40 +0200
Subject: [PATCH 31/68] pr-fix: pr number
---
build/templates/integration-tests.yml | 34 ++++++++++++++++++++-------
1 file changed, 26 insertions(+), 8 deletions(-)
diff --git a/build/templates/integration-tests.yml b/build/templates/integration-tests.yml
index be916cdc..8a6bbada 100644
--- a/build/templates/integration-tests.yml
+++ b/build/templates/integration-tests.yml
@@ -80,15 +80,28 @@ jobs:
inputs:
reports: '$(Agent.TempDirectory)/**/coverage.cobertura.xml'
targetdir: coveragereport
- reporttypes: Html;HtmlInline_AzurePipelines_Dark;Cobertura;MarkdownDeltaSummary
+ reporttypes: Html;HtmlInline_AzurePipelines_Dark;Cobertura;MarkdownDeltaSummary;MarkdownSummaryGithub
publishCodeCoverageResults: true
- # - task: BuildQualityChecks@8
- # displayName: 'Check code quality'
- # inputs:
- # checkCoverage: true
- # coverageFailOption: fixed
- # coverageThreshold: 80
+ # - powershell: |
+ # # Parse the coverage results
+ # [xml]$coverageReport = Get-Content "$(System.DefaultWorkingDirectory)/**/coverage.cobertura.xml"
+ # $lineCoverage = [math]::Round(($coverageReport.coverage.packages.package.classes.class.lines.line | Where-Object { $_.hits -gt 0 }).Count / $coverageReport.coverage.packages.package.classes.class.lines.line.Count * 100, 2)
+
+ # Write-Output "Line Coverage: $lineCoverage%"
+
+ # # Define the coverage threshold
+ # $coverageThreshold = 80
+
+ # # Check if the coverage meets the threshold
+ # if ($lineCoverage -lt $coverageThreshold) {
+ # Write-Error "Code coverage ($lineCoverage%) is below the threshold ($coverageThreshold%). Failing the pipeline."
+ # exit 1
+ # } else {
+ # Write-Output "Code coverage ($lineCoverage%) meets the threshold ($coverageThreshold%)."
+ # }
+ # displayName: 'Check code coverage threshold'
+
- powershell: |
# Check if GitHub CLI is installed
@@ -105,7 +118,12 @@ jobs:
$prNumber = $env:System.PullRequest.PullRequestNumber
$existingComment = gh pr view $prNumber --json comments --jq '.comments[].body' | Select-String -Pattern 'Delta Summary'
- $coverage_report = Get-Content "$(Build.SourcesDirectory)/coveragereport/Summary.md" -Raw
+ $coverage_report = ""
+ if (Test-Path "$(Build.SourcesDirectory)/coveragereport/DeltaSummary.md") {
+ $coverage_report = Get-Content "$(Build.SourcesDirectory)/coveragereport/DeltaSummary.md" -Raw
+ } else {
+ $coverage_report = Get-Content "$(Build.SourcesDirectory)/coveragereport/SummaryGitHub.md" -Raw
+ }
# Post or update the comment with the code coverage report
if (-not $existingComment) {
From e97bb073354e9ec7774fd2f9d2df747c2034b943 Mon Sep 17 00:00:00 2001
From: stijnmoreels <9039753+stijnmoreels@users.noreply.github.com>
Date: Mon, 29 Jul 2024 10:40:25 +0200
Subject: [PATCH 32/68] pr-fix: publish code coverage in gh workflow
---
.github/workflows/publish-coverage-pr.yml | 35 ++++++++++++++
build/templates/integration-tests.yml | 59 +++--------------------
2 files changed, 41 insertions(+), 53 deletions(-)
create mode 100644 .github/workflows/publish-coverage-pr.yml
diff --git a/.github/workflows/publish-coverage-pr.yml b/.github/workflows/publish-coverage-pr.yml
new file mode 100644
index 00000000..bd33904c
--- /dev/null
+++ b/.github/workflows/publish-coverage-pr.yml
@@ -0,0 +1,35 @@
+name: Publish Azure DevOps code coverage on GitHub PR
+
+on:
+ pull_request:
+ branches: [ main ]
+
+jobs:
+ publish:
+ name: Publish Azure DevOps code coverage
+ runs-on: ubuntu-latest
+
+ permissions:
+ actions: write
+ contents: read
+ pull-requests: write
+
+ strategy:
+ fail-fast: true
+ matrix:
+ language: [ 'csharp' ]
+
+ steps:
+ - name: Download AzureDevOps code coverage summary
+ uses: git-for-windows/get-azure-pipelines-artifact@v0
+ with:
+ repository: 'codit/arcus'
+ definitionId: 804
+ artifact: 'CodeCoverageSummaryGitHub'
+
+ - name: Add coverage PR comment
+ uses: marocchina/sticky-pull-request-comment@v2
+ if: github.event_name == 'pull_request'
+ with:
+ recreate: true
+ path: coveragereport/SummaryGitHub.md
\ No newline at end of file
diff --git a/build/templates/integration-tests.yml b/build/templates/integration-tests.yml
index 8a6bbada..c7b38ea2 100644
--- a/build/templates/integration-tests.yml
+++ b/build/templates/integration-tests.yml
@@ -83,57 +83,10 @@ jobs:
reporttypes: Html;HtmlInline_AzurePipelines_Dark;Cobertura;MarkdownDeltaSummary;MarkdownSummaryGithub
publishCodeCoverageResults: true
- # - powershell: |
- # # Parse the coverage results
- # [xml]$coverageReport = Get-Content "$(System.DefaultWorkingDirectory)/**/coverage.cobertura.xml"
- # $lineCoverage = [math]::Round(($coverageReport.coverage.packages.package.classes.class.lines.line | Where-Object { $_.hits -gt 0 }).Count / $coverageReport.coverage.packages.package.classes.class.lines.line.Count * 100, 2)
-
- # Write-Output "Line Coverage: $lineCoverage%"
-
- # # Define the coverage threshold
- # $coverageThreshold = 80
-
- # # Check if the coverage meets the threshold
- # if ($lineCoverage -lt $coverageThreshold) {
- # Write-Error "Code coverage ($lineCoverage%) is below the threshold ($coverageThreshold%). Failing the pipeline."
- # exit 1
- # } else {
- # Write-Output "Code coverage ($lineCoverage%) meets the threshold ($coverageThreshold%)."
- # }
- # displayName: 'Check code coverage threshold'
-
-
- - powershell: |
- # Check if GitHub CLI is installed
- if (-not (Get-Command gh -ErrorAction SilentlyContinue)) {
- # Download and install GitHub CLI
- Invoke-WebRequest -Uri "https://github.com/cli/cli/releases/latest/download/gh_2.0.0_windows_amd64.msi" -OutFile "$env:TEMP\gh.msi"
- Start-Process msiexec.exe -ArgumentList "/i $env:TEMP\gh.msi /quiet /norestart" -Wait
- }
-
- # Authenticate with GitHub CLI
- echo $env:GITHUB_TOKEN | gh auth login --with-token
-
- # Check for existing code coverage comment
- $prNumber = $env:System.PullRequest.PullRequestNumber
- $existingComment = gh pr view $prNumber --json comments --jq '.comments[].body' | Select-String -Pattern 'Delta Summary'
-
- $coverage_report = ""
- if (Test-Path "$(Build.SourcesDirectory)/coveragereport/DeltaSummary.md") {
- $coverage_report = Get-Content "$(Build.SourcesDirectory)/coveragereport/DeltaSummary.md" -Raw
- } else {
- $coverage_report = Get-Content "$(Build.SourcesDirectory)/coveragereport/SummaryGitHub.md" -Raw
- }
-
- # Post or update the comment with the code coverage report
- if (-not $existingComment) {
- gh pr comment $prNumber --body $coverage_report
- } else {
- $commentId = gh pr view $prNumber --json comments --jq '.comments[] | select(.body | contains("Delta Summary")) | .id'
- gh pr comment update $commentId --body $coverage_report
- }
- displayName: 'Post Code Coverage Report on PR'
- env:
- GITHUB_TOKEN: $(GITHUB_TOKEN)
- System.PullRequest.PullRequestNumber: $(System.PullRequest.PullRequestNumber)
+ - task: PublishBuildArtifacts@1
+ displayName: 'Publish coverage report'
+ inputs:
+ pathtoPublish: 'coveragereport/SummaryGitHub.md'
+ artifactName: 'CodeCoverageSummaryGitHub'
+ publishLocation: 'Container'
\ No newline at end of file
From a25c156631e394154a22401025eea4d43e06d6f9 Mon Sep 17 00:00:00 2001
From: stijnmoreels <9039753+stijnmoreels@users.noreply.github.com>
Date: Mon, 29 Jul 2024 10:42:40 +0200
Subject: [PATCH 33/68] pr-fix: correct gh action
---
.github/workflows/publish-coverage-pr.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/publish-coverage-pr.yml b/.github/workflows/publish-coverage-pr.yml
index bd33904c..e37cf551 100644
--- a/.github/workflows/publish-coverage-pr.yml
+++ b/.github/workflows/publish-coverage-pr.yml
@@ -28,7 +28,7 @@ jobs:
artifact: 'CodeCoverageSummaryGitHub'
- name: Add coverage PR comment
- uses: marocchina/sticky-pull-request-comment@v2
+ uses: marocchino/sticky-pull-request-comment@v2
if: github.event_name == 'pull_request'
with:
recreate: true
From 089ce555f7c6ada8030cf6ffe2d0f6749140d574 Mon Sep 17 00:00:00 2001
From: stijnmoreels <9039753+stijnmoreels@users.noreply.github.com>
Date: Mon, 29 Jul 2024 10:50:09 +0200
Subject: [PATCH 34/68] pr-fix: publish on pr
---
.github/workflows/publish-coverage-pr.yml | 35 -----------------------
build/templates/integration-tests.yml | 18 ++++++++----
2 files changed, 12 insertions(+), 41 deletions(-)
delete mode 100644 .github/workflows/publish-coverage-pr.yml
diff --git a/.github/workflows/publish-coverage-pr.yml b/.github/workflows/publish-coverage-pr.yml
deleted file mode 100644
index e37cf551..00000000
--- a/.github/workflows/publish-coverage-pr.yml
+++ /dev/null
@@ -1,35 +0,0 @@
-name: Publish Azure DevOps code coverage on GitHub PR
-
-on:
- pull_request:
- branches: [ main ]
-
-jobs:
- publish:
- name: Publish Azure DevOps code coverage
- runs-on: ubuntu-latest
-
- permissions:
- actions: write
- contents: read
- pull-requests: write
-
- strategy:
- fail-fast: true
- matrix:
- language: [ 'csharp' ]
-
- steps:
- - name: Download AzureDevOps code coverage summary
- uses: git-for-windows/get-azure-pipelines-artifact@v0
- with:
- repository: 'codit/arcus'
- definitionId: 804
- artifact: 'CodeCoverageSummaryGitHub'
-
- - name: Add coverage PR comment
- uses: marocchino/sticky-pull-request-comment@v2
- if: github.event_name == 'pull_request'
- with:
- recreate: true
- path: coveragereport/SummaryGitHub.md
\ No newline at end of file
diff --git a/build/templates/integration-tests.yml b/build/templates/integration-tests.yml
index c7b38ea2..0420232f 100644
--- a/build/templates/integration-tests.yml
+++ b/build/templates/integration-tests.yml
@@ -83,10 +83,16 @@ jobs:
reporttypes: Html;HtmlInline_AzurePipelines_Dark;Cobertura;MarkdownDeltaSummary;MarkdownSummaryGithub
publishCodeCoverageResults: true
- - task: PublishBuildArtifacts@1
- displayName: 'Publish coverage report'
+ - powershell: |
+ Install-Module -Name Arcus.Scripting.DevOps -AllowClobber
+ Import-Module -Name Arcus.Scripting.DevOps
+ $content = Get-Content -Path 'coveragereport/SummaryGitHub.md' -Raw
+ Set-AzDevOpsVariable -Name 'SummaryGitHub' -Value $content
+
+ - task: GitHubComment@0
+ displayName: 'Add code coverage comment to PR'
inputs:
- pathtoPublish: 'coveragereport/SummaryGitHub.md'
- artifactName: 'CodeCoverageSummaryGitHub'
- publishLocation: 'Container'
-
\ No newline at end of file
+ gitHubConnection: 'arcus-azure'
+ repository: '$(Build.Repository.Name)'
+ id: '$(System.PullRequest.PullRequestNumber)'
+ comment: '$(SummaryGitHub)'
\ No newline at end of file
From adc70d392b3e3bc28c9edf71f2e7934d8ec1d8f2 Mon Sep 17 00:00:00 2001
From: stijnmoreels <9039753+stijnmoreels@users.noreply.github.com>
Date: Mon, 29 Jul 2024 11:01:19 +0200
Subject: [PATCH 35/68] pr-fix: correct path
---
build/templates/integration-tests.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/build/templates/integration-tests.yml b/build/templates/integration-tests.yml
index 0420232f..caa0a14a 100644
--- a/build/templates/integration-tests.yml
+++ b/build/templates/integration-tests.yml
@@ -86,7 +86,7 @@ jobs:
- powershell: |
Install-Module -Name Arcus.Scripting.DevOps -AllowClobber
Import-Module -Name Arcus.Scripting.DevOps
- $content = Get-Content -Path 'coveragereport/SummaryGitHub.md' -Raw
+ $content = Get-Content -Path './coveragereport/SummaryGithub.md' -Raw
Set-AzDevOpsVariable -Name 'SummaryGitHub' -Value $content
- task: GitHubComment@0
From 445fa4708bbc22dc2c2d1e61b9cdd60ebc77e533 Mon Sep 17 00:00:00 2001
From: stijnmoreels <9039753+stijnmoreels@users.noreply.github.com>
Date: Mon, 29 Jul 2024 12:30:10 +0200
Subject: [PATCH 36/68] pr-fix: use gh cli
---
build/ci-build.yml | 2 +-
build/templates/integration-tests.yml | 25 +++++++++++++++++--------
2 files changed, 18 insertions(+), 9 deletions(-)
diff --git a/build/ci-build.yml b/build/ci-build.yml
index fd16d0f4..d3c7b1d3 100644
--- a/build/ci-build.yml
+++ b/build/ci-build.yml
@@ -31,7 +31,7 @@ resources:
endpoint: arcus-azure
variables:
- - group: 'Arcus - GitHub Package Registry'
+ - group: 'GitHub Configuration'
- group: 'Build Configuration'
- template: ./variables/build.yml
diff --git a/build/templates/integration-tests.yml b/build/templates/integration-tests.yml
index caa0a14a..e378862d 100644
--- a/build/templates/integration-tests.yml
+++ b/build/templates/integration-tests.yml
@@ -86,13 +86,22 @@ jobs:
- powershell: |
Install-Module -Name Arcus.Scripting.DevOps -AllowClobber
Import-Module -Name Arcus.Scripting.DevOps
+
$content = Get-Content -Path './coveragereport/SummaryGithub.md' -Raw
- Set-AzDevOpsVariable -Name 'SummaryGitHub' -Value $content
- - task: GitHubComment@0
- displayName: 'Add code coverage comment to PR'
- inputs:
- gitHubConnection: 'arcus-azure'
- repository: '$(Build.Repository.Name)'
- id: '$(System.PullRequest.PullRequestNumber)'
- comment: '$(SummaryGitHub)'
\ No newline at end of file
+ Invoke-WebRequest -Uri https://github.com/cli/cli/releases/download/v2.0.0/gh_2.0.0_windows_amd64.msi -OutFile gh-cli.msi
+ Start-Process msiexec.exe -ArgumentList '/i gh-cli.msi /quiet' -NoNewWindow -Wait
+ Remove-Item gh-cli.msi
+
+ # Verify installation
+ if (-not (Get-Command gh -ErrorAction SilentlyContinue)) {
+ Write-Error "GitHub CLI (gh) installation failed."
+ exit 1
+ }
+
+ gh auth login --with-token $env:GITHUB_TOKEN
+ gh repo view
+ gh pr comment $env:PR_NUMBER --body $content --edit-last
+ env:
+ GITHUB_TOKEN: $(GITHUB_TOKEN)
+ PR_NUMBER: $(System.PullRequest.PullRequestId)
From 2ca6a9578d6e6dd9f02283a4c97922df3048f1df Mon Sep 17 00:00:00 2001
From: stijnmoreels <9039753+stijnmoreels@users.noreply.github.com>
Date: Mon, 29 Jul 2024 12:37:40 +0200
Subject: [PATCH 37/68] pr-fix: install other way
---
build/templates/integration-tests.yml | 17 +++++++----------
1 file changed, 7 insertions(+), 10 deletions(-)
diff --git a/build/templates/integration-tests.yml b/build/templates/integration-tests.yml
index e378862d..e00a47da 100644
--- a/build/templates/integration-tests.yml
+++ b/build/templates/integration-tests.yml
@@ -83,21 +83,18 @@ jobs:
reporttypes: Html;HtmlInline_AzurePipelines_Dark;Cobertura;MarkdownDeltaSummary;MarkdownSummaryGithub
publishCodeCoverageResults: true
+ - script: sudo apt install gh
- powershell: |
Install-Module -Name Arcus.Scripting.DevOps -AllowClobber
Import-Module -Name Arcus.Scripting.DevOps
$content = Get-Content -Path './coveragereport/SummaryGithub.md' -Raw
-
- Invoke-WebRequest -Uri https://github.com/cli/cli/releases/download/v2.0.0/gh_2.0.0_windows_amd64.msi -OutFile gh-cli.msi
- Start-Process msiexec.exe -ArgumentList '/i gh-cli.msi /quiet' -NoNewWindow -Wait
- Remove-Item gh-cli.msi
-
- # Verify installation
- if (-not (Get-Command gh -ErrorAction SilentlyContinue)) {
- Write-Error "GitHub CLI (gh) installation failed."
- exit 1
- }
+
+ # Verify installation
+ if (-not (Get-Command gh -ErrorAction SilentlyContinue)) {
+ Write-Error "GitHub CLI (gh) installation failed."
+ exit 1
+ }
gh auth login --with-token $env:GITHUB_TOKEN
gh repo view
From 186517c25fa9f09b217c7f438fa1f71359f9e846 Mon Sep 17 00:00:00 2001
From: stijnmoreels <9039753+stijnmoreels@users.noreply.github.com>
Date: Mon, 29 Jul 2024 13:16:19 +0200
Subject: [PATCH 38/68] pr-fix: remove useless test
---
.../DemoIntegrationTest.cs | 27 -------------------
1 file changed, 27 deletions(-)
delete mode 100644 src/Arcus.Testing.Tests.Integration/DemoIntegrationTest.cs
diff --git a/src/Arcus.Testing.Tests.Integration/DemoIntegrationTest.cs b/src/Arcus.Testing.Tests.Integration/DemoIntegrationTest.cs
deleted file mode 100644
index 76ef29a7..00000000
--- a/src/Arcus.Testing.Tests.Integration/DemoIntegrationTest.cs
+++ /dev/null
@@ -1,27 +0,0 @@
-using System.Threading.Tasks;
-using Xunit;
-using Xunit.Abstractions;
-
-namespace Arcus.Template.Tests.Integration
-{
- [Trait(name: "Category", value: "Integration")]
- public class DemoIntegrationTest : IntegrationTest
- {
- // The same tests should be tested with different KeyVaultClientFactories
- // What's the best approach for this ?
-
- public DemoIntegrationTest(ITestOutputHelper testOutput) : base(testOutput)
- {
- }
-
- [Fact]
- public async Task ThisJustWorks()
- {
- // Arrange
-
- // Act
-
- // Assert
- }
- }
-}
From 27d34df56be512fc79142b05b12271c238567577 Mon Sep 17 00:00:00 2001
From: stijnmoreels <9039753+stijnmoreels@users.noreply.github.com>
Date: Mon, 29 Jul 2024 13:24:39 +0200
Subject: [PATCH 39/68] pr-fix: use pr number
---
build/templates/integration-tests.yml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/build/templates/integration-tests.yml b/build/templates/integration-tests.yml
index e00a47da..d892dfbd 100644
--- a/build/templates/integration-tests.yml
+++ b/build/templates/integration-tests.yml
@@ -89,7 +89,7 @@ jobs:
Import-Module -Name Arcus.Scripting.DevOps
$content = Get-Content -Path './coveragereport/SummaryGithub.md' -Raw
-
+
# Verify installation
if (-not (Get-Command gh -ErrorAction SilentlyContinue)) {
Write-Error "GitHub CLI (gh) installation failed."
@@ -101,4 +101,4 @@ jobs:
gh pr comment $env:PR_NUMBER --body $content --edit-last
env:
GITHUB_TOKEN: $(GITHUB_TOKEN)
- PR_NUMBER: $(System.PullRequest.PullRequestId)
+ PR_NUMBER: $(System.PullRequest.PullRequestNumber)
From f2ca01686b6eeb26fb8e40c25da971e48d775377 Mon Sep 17 00:00:00 2001
From: stijnmoreels <9039753+stijnmoreels@users.noreply.github.com>
Date: Mon, 29 Jul 2024 13:42:46 +0200
Subject: [PATCH 40/68] pr-fix: upsert comment
---
build/templates/integration-tests.yml | 16 +++++++++-------
1 file changed, 9 insertions(+), 7 deletions(-)
diff --git a/build/templates/integration-tests.yml b/build/templates/integration-tests.yml
index d892dfbd..fb31af1f 100644
--- a/build/templates/integration-tests.yml
+++ b/build/templates/integration-tests.yml
@@ -90,15 +90,17 @@ jobs:
$content = Get-Content -Path './coveragereport/SummaryGithub.md' -Raw
- # Verify installation
- if (-not (Get-Command gh -ErrorAction SilentlyContinue)) {
- Write-Error "GitHub CLI (gh) installation failed."
- exit 1
- }
-
gh auth login --with-token $env:GITHUB_TOKEN
gh repo view
- gh pr comment $env:PR_NUMBER --body $content --edit-last
+
+ $comments = gh pr view $env:PR_NUMBER --json comments --jq '.comments[].body'
+ $commentExists = $comments | Where-Object { $_ -like "*Cobertura*" }
+
+ if ($commentExists) {
+ gh pr comment $env:PR_NUMBER --body $content --edit-last
+ } else {
+ gh pr comment $env:PR_NUMBER --body $content
+ }
env:
GITHUB_TOKEN: $(GITHUB_TOKEN)
PR_NUMBER: $(System.PullRequest.PullRequestNumber)
From f64f7b724e46dfa4c0c8356e36200d31fd72e04a Mon Sep 17 00:00:00 2001
From: stijnmoreels <9039753+stijnmoreels@users.noreply.github.com>
Date: Mon, 29 Jul 2024 14:04:35 +0200
Subject: [PATCH 41/68] pr-fix: change summary
---
build/templates/integration-tests.yml | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/build/templates/integration-tests.yml b/build/templates/integration-tests.yml
index fb31af1f..3dd84b98 100644
--- a/build/templates/integration-tests.yml
+++ b/build/templates/integration-tests.yml
@@ -80,22 +80,18 @@ jobs:
inputs:
reports: '$(Agent.TempDirectory)/**/coverage.cobertura.xml'
targetdir: coveragereport
- reporttypes: Html;HtmlInline_AzurePipelines_Dark;Cobertura;MarkdownDeltaSummary;MarkdownSummaryGithub
+ reporttypes: Html;HtmlInline_AzurePipelines_Dark;Cobertura;MarkdownAssembliesSummary
publishCodeCoverageResults: true
- script: sudo apt install gh
- powershell: |
- Install-Module -Name Arcus.Scripting.DevOps -AllowClobber
- Import-Module -Name Arcus.Scripting.DevOps
-
- $content = Get-Content -Path './coveragereport/SummaryGithub.md' -Raw
-
gh auth login --with-token $env:GITHUB_TOKEN
gh repo view
$comments = gh pr view $env:PR_NUMBER --json comments --jq '.comments[].body'
$commentExists = $comments | Where-Object { $_ -like "*Cobertura*" }
+ $content = Get-Content -Path './coveragereport/Summary.md' -Raw
if ($commentExists) {
gh pr comment $env:PR_NUMBER --body $content --edit-last
} else {
From 9d229618638f2bf7b175293c7660c707899496e9 Mon Sep 17 00:00:00 2001
From: stijnmoreels <9039753+stijnmoreels@users.noreply.github.com>
Date: Wed, 31 Jul 2024 18:48:39 +0200
Subject: [PATCH 42/68] pr-fix: use gh summary
---
build/templates/integration-tests.yml | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/build/templates/integration-tests.yml b/build/templates/integration-tests.yml
index 3dd84b98..f6810bc8 100644
--- a/build/templates/integration-tests.yml
+++ b/build/templates/integration-tests.yml
@@ -80,7 +80,7 @@ jobs:
inputs:
reports: '$(Agent.TempDirectory)/**/coverage.cobertura.xml'
targetdir: coveragereport
- reporttypes: Html;HtmlInline_AzurePipelines_Dark;Cobertura;MarkdownAssembliesSummary
+ reporttypes: Html;HtmlInline_AzurePipelines_Dark;Cobertura;MarkdownSummaryGithub
publishCodeCoverageResults: true
- script: sudo apt install gh
@@ -89,9 +89,11 @@ jobs:
gh repo view
$comments = gh pr view $env:PR_NUMBER --json comments --jq '.comments[].body'
- $commentExists = $comments | Where-Object { $_ -like "*Cobertura*" }
+ $commentExists = $comments | Where-Object { $_ -like "*Code coverage summary*" }
+
+ $content = Get-Content -Path './coveragereport/SummaryGithub.md' -Raw
+ $content = $content[0..($content.IndexOf('## Coverage'))]
- $content = Get-Content -Path './coveragereport/Summary.md' -Raw
if ($commentExists) {
gh pr comment $env:PR_NUMBER --body $content --edit-last
} else {
From 6065c1d65404d427d95fc351f9f67136d9818911 Mon Sep 17 00:00:00 2001
From: stijnmoreels <9039753+stijnmoreels@users.noreply.github.com>
Date: Thu, 1 Aug 2024 07:12:33 +0200
Subject: [PATCH 43/68] pr-fix: separate jobs
---
build/ci-build.yml | 4 ++--
build/templates/integration-tests.yml | 34 +++++++--------------------
build/templates/publish-coverage.yml | 11 ++-------
build/templates/unit-tests.yml | 4 ++--
4 files changed, 15 insertions(+), 38 deletions(-)
diff --git a/build/ci-build.yml b/build/ci-build.yml
index d3c7b1d3..f2feeb86 100644
--- a/build/ci-build.yml
+++ b/build/ci-build.yml
@@ -70,11 +70,11 @@ stages:
dependsOn: Build
condition: succeeded()
jobs:
- # - template: templates/unit-tests.yml
+ - template: templates/unit-tests.yml
- template: templates/integration-tests.yml
parameters:
azureServiceConnection: '${{ parameters.azureServiceConnection }}'
- # - template: templates/publish-coverage.yml
+ - template: templates/publish-coverage.yml
- stage: ReleaseToMyget
displayName: 'Release to MyGet'
diff --git a/build/templates/integration-tests.yml b/build/templates/integration-tests.yml
index f6810bc8..98eaefec 100644
--- a/build/templates/integration-tests.yml
+++ b/build/templates/integration-tests.yml
@@ -75,30 +75,14 @@ jobs:
publishTestResults: true
mergeTestResults: true
- - task: reportgenerator@5
- displayName: ReportGenerator
+ - task: CopyFiles@2
+ displayName: 'Copy build artifacts'
inputs:
- reports: '$(Agent.TempDirectory)/**/coverage.cobertura.xml'
- targetdir: coveragereport
- reporttypes: Html;HtmlInline_AzurePipelines_Dark;Cobertura;MarkdownSummaryGithub
- publishCodeCoverageResults: true
+ contents: '$(Agent.TempDirectory)/**/coverage.cobertura.xml'
+ targetFolder: '$(Pipeline.Workspace)/coverage-integration'
- - script: sudo apt install gh
- - powershell: |
- gh auth login --with-token $env:GITHUB_TOKEN
- gh repo view
-
- $comments = gh pr view $env:PR_NUMBER --json comments --jq '.comments[].body'
- $commentExists = $comments | Where-Object { $_ -like "*Code coverage summary*" }
-
- $content = Get-Content -Path './coveragereport/SummaryGithub.md' -Raw
- $content = $content[0..($content.IndexOf('## Coverage'))]
-
- if ($commentExists) {
- gh pr comment $env:PR_NUMBER --body $content --edit-last
- } else {
- gh pr comment $env:PR_NUMBER --body $content
- }
- env:
- GITHUB_TOKEN: $(GITHUB_TOKEN)
- PR_NUMBER: $(System.PullRequest.PullRequestNumber)
+ - task: PublishPipelineArtifact@0
+ displayName: 'Publish build artifacts'
+ inputs:
+ targetPath: '$(Pipeline.Workspace)/coverage-integration'
+ artifactName: Coverage-Integration
diff --git a/build/templates/publish-coverage.yml b/build/templates/publish-coverage.yml
index 620b5699..66accc57 100644
--- a/build/templates/publish-coverage.yml
+++ b/build/templates/publish-coverage.yml
@@ -22,14 +22,7 @@ jobs:
- task: reportgenerator@5
displayName: ReportGenerator
inputs:
- reports: '$(Build.SourcesDirectory)/TestResults/**/coverage.cobertura.xml'
+ reports: '$(Agent.TempDirectory)/**/coverage.cobertura.xml'
targetdir: coveragereport
- reporttypes: Html;HtmlInline_AzurePipelines_Dark
+ reporttypes: Html;HtmlInline_AzurePipelines_Dark;Cobertura;MarkdownSummaryGithub
publishCodeCoverageResults: true
-
- - task: BuildQualityChecks@8
- displayName: 'Check code quality'
- inputs:
- checkCoverage: true
- coverageFailOption: fixed
- coverageThreshold: 70
diff --git a/build/templates/unit-tests.yml b/build/templates/unit-tests.yml
index 4ec62dde..b57cd4ef 100644
--- a/build/templates/unit-tests.yml
+++ b/build/templates/unit-tests.yml
@@ -31,8 +31,8 @@ jobs:
arguments: '--configuration $(Build.Configuration) --collect:"XPlat Code Coverage"'
nobuild: true
publishTestResults: true
- mergeTestResults:
-
+ mergeTestResults: true
+
- task: CopyFiles@2
displayName: 'Copy build artifacts'
inputs:
From 5e36e0cbced78f0a05e8387f9e9a0dcbeca51d92 Mon Sep 17 00:00:00 2001
From: stijnmoreels <9039753+stijnmoreels@users.noreply.github.com>
Date: Thu, 1 Aug 2024 07:19:54 +0200
Subject: [PATCH 44/68] pr-fix: use wildards
---
build/templates/integration-tests.yml | 12 +-----------
build/templates/unit-tests.yml | 2 +-
2 files changed, 2 insertions(+), 12 deletions(-)
diff --git a/build/templates/integration-tests.yml b/build/templates/integration-tests.yml
index 98eaefec..b254b407 100644
--- a/build/templates/integration-tests.yml
+++ b/build/templates/integration-tests.yml
@@ -44,16 +44,6 @@ jobs:
version: '$(DotNet.Sdk.Version)'
includePreviewVersions: $(DotNet.Sdk.IncludePreviewVersions)
- - task: DotNetCoreCLI@2
- displayName: 'Run unit tests'
- inputs:
- command: test
- projects: 'src/**/$(Project).Tests.Unit.csproj'
- arguments: '--configuration $(Build.Configuration) --collect:"XPlat Code Coverage"'
- nobuild: true
- publishTestResults: true
- mergeTestResults: true
-
- task: qetza.replacetokens.replacetokens-task.replacetokens@6
displayName: 'Replace integration test tokens'
inputs:
@@ -78,7 +68,7 @@ jobs:
- task: CopyFiles@2
displayName: 'Copy build artifacts'
inputs:
- contents: '$(Agent.TempDirectory)/**/coverage.cobertura.xml'
+ contents: '$(Agent.TempDirectory)/**'
targetFolder: '$(Pipeline.Workspace)/coverage-integration'
- task: PublishPipelineArtifact@0
diff --git a/build/templates/unit-tests.yml b/build/templates/unit-tests.yml
index b57cd4ef..4315f73f 100644
--- a/build/templates/unit-tests.yml
+++ b/build/templates/unit-tests.yml
@@ -36,7 +36,7 @@ jobs:
- task: CopyFiles@2
displayName: 'Copy build artifacts'
inputs:
- contents: '$(Agent.TempDirectory)/**/coverage.cobertura.xml'
+ contents: '$(Agent.TempDirectory)/**'
targetFolder: '$(Pipeline.Workspace)/coverage-unit'
- task: PublishPipelineArtifact@0
From 03ebfd2f4603e01c10fdebfbbcd94e32680c0c55 Mon Sep 17 00:00:00 2001
From: stijnmoreels <9039753+stijnmoreels@users.noreply.github.com>
Date: Thu, 1 Aug 2024 07:30:20 +0200
Subject: [PATCH 45/68] pr-fix: use own test
---
build/templates/unit-tests.yml | 35 ++++++++++++++++++++--------------
1 file changed, 21 insertions(+), 14 deletions(-)
diff --git a/build/templates/unit-tests.yml b/build/templates/unit-tests.yml
index 4315f73f..9d780d9c 100644
--- a/build/templates/unit-tests.yml
+++ b/build/templates/unit-tests.yml
@@ -23,24 +23,31 @@ jobs:
version: '$(DotNet.Sdk.Version)'
includePreviewVersions: $(DotNet.Sdk.IncludePreviewVersions)
- - task: DotNetCoreCLI@2
- displayName: 'Run unit tests'
- inputs:
- command: test
- projects: 'src/**/$(Project).Tests.Unit.csproj'
- arguments: '--configuration $(Build.Configuration) --collect:"XPlat Code Coverage"'
- nobuild: true
- publishTestResults: true
- mergeTestResults: true
+ # - task: DotNetCoreCLI@2
+ # displayName: 'Run unit tests'
+ # inputs:
+ # command: test
+ # projects: 'src/**/$(Project).Tests.Unit.csproj'
+ # arguments: '--configuration $(Build.Configuration) --collect:"XPlat Code Coverage"'
+ # nobuild: true
+ # publishTestResults: true
+ # mergeTestResults: true
+ - script: |
+ dotnet test src/**/$(Project).Tests.Unit.csproj --configuration $(Build.Configuration) --collect:"XPlat Code Coverage" --logger trx --results-directory $(Pipeline.Workspace)
- - task: CopyFiles@2
- displayName: 'Copy build artifacts'
+ - task: PublishTestResults@2
inputs:
- contents: '$(Agent.TempDirectory)/**'
- targetFolder: '$(Pipeline.Workspace)/coverage-unit'
+ testResultsFormat: 'XUnit'
+ testResultsFiles: '**/TEST-*.trx'
+
+ # - task: CopyFiles@2
+ # displayName: 'Copy build artifacts'
+ # inputs:
+ # contents: '$(Agent.TempDirectory)/**'
+ # targetFolder: '$(Pipeline.Workspace)/coverage-unit'
- task: PublishPipelineArtifact@0
displayName: 'Publish build artifacts'
inputs:
- targetPath: '$(Pipeline.Workspace)/coverage-unit'
+ targetPath: '$(Pipeline.Workspace)'
artifactName: Coverage-Unit
\ No newline at end of file
From 6e688889bad241adab694d55d034feff339fd8de Mon Sep 17 00:00:00 2001
From: stijnmoreels <9039753+stijnmoreels@users.noreply.github.com>
Date: Thu, 1 Aug 2024 07:38:39 +0200
Subject: [PATCH 46/68] pr-fix: use correct artifacts
---
build/templates/integration-tests.yml | 27 ++++++++++++++++++---------
build/templates/unit-tests.yml | 2 +-
2 files changed, 19 insertions(+), 10 deletions(-)
diff --git a/build/templates/integration-tests.yml b/build/templates/integration-tests.yml
index b254b407..6e767130 100644
--- a/build/templates/integration-tests.yml
+++ b/build/templates/integration-tests.yml
@@ -55,15 +55,18 @@ jobs:
tokenPrefix: '#{'
tokenSuffix: '}#'
- - task: DotNetCoreCLI@2
- displayName: 'Run integration tests'
- inputs:
- command: test
- projects: 'src/**/$(Project).Tests.Integration.csproj'
- arguments: '--configuration $(Build.Configuration) --collect:"XPlat Code Coverage"'
- nobuild: true
- publishTestResults: true
- mergeTestResults: true
+ # - task: DotNetCoreCLI@2
+ # displayName: 'Run integration tests'
+ # inputs:
+ # command: test
+ # projects: 'src/**/$(Project).Tests.Integration.csproj'
+ # arguments: '--configuration $(Build.Configuration) --collect:"XPlat Code Coverage"'
+ # nobuild: true
+ # publishTestResults: true
+ # mergeTestResults: true
+
+ - script: |
+ dotnet test src/**/$(Project).Tests.Integration.csproj --configuration $(Build.Configuration) --collect:"XPlat Code Coverage" --logger trx --results-directory $(Pipeline.Workspace)
- task: CopyFiles@2
displayName: 'Copy build artifacts'
@@ -71,6 +74,12 @@ jobs:
contents: '$(Agent.TempDirectory)/**'
targetFolder: '$(Pipeline.Workspace)/coverage-integration'
+ # - task: CopyFiles@2
+ # displayName: 'Copy build artifacts'
+ # inputs:
+ # contents: '$(Agent.TempDirectory)/**'
+ # targetFolder: '$(Pipeline.Workspace)/coverage-integration'
+
- task: PublishPipelineArtifact@0
displayName: 'Publish build artifacts'
inputs:
diff --git a/build/templates/unit-tests.yml b/build/templates/unit-tests.yml
index 9d780d9c..eb3f3d9d 100644
--- a/build/templates/unit-tests.yml
+++ b/build/templates/unit-tests.yml
@@ -38,7 +38,7 @@ jobs:
- task: PublishTestResults@2
inputs:
testResultsFormat: 'XUnit'
- testResultsFiles: '**/TEST-*.trx'
+ testResultsFiles: '$(Pipeline.Workspace)/*.trx'
# - task: CopyFiles@2
# displayName: 'Copy build artifacts'
From e0d1a3f4fa1942636d7d45f72fe76d2449c3d82d Mon Sep 17 00:00:00 2001
From: stijnmoreels <9039753+stijnmoreels@users.noreply.github.com>
Date: Thu, 1 Aug 2024 07:45:34 +0200
Subject: [PATCH 47/68] pr-fix: use correct var name
---
build/templates/integration-tests.yml | 15 +++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)
diff --git a/build/templates/integration-tests.yml b/build/templates/integration-tests.yml
index 6e767130..25a81e68 100644
--- a/build/templates/integration-tests.yml
+++ b/build/templates/integration-tests.yml
@@ -66,13 +66,16 @@ jobs:
# mergeTestResults: true
- script: |
- dotnet test src/**/$(Project).Tests.Integration.csproj --configuration $(Build.Configuration) --collect:"XPlat Code Coverage" --logger trx --results-directory $(Pipeline.Workspace)
+ dotnet test src/**/$(Project).Tests.Integration.csproj \
+ --no-build --configuration $(Build.Configuration) \
+ --collect:"XPlat Code Coverage" \
+ --logger trx --results-directory $(Pipeline.Workspace)
+ displayName: 'Run integration tests'
- - task: CopyFiles@2
- displayName: 'Copy build artifacts'
+ - task: PublishTestResults@2
inputs:
- contents: '$(Agent.TempDirectory)/**'
- targetFolder: '$(Pipeline.Workspace)/coverage-integration'
+ testResultsFormat: 'XUnit'
+ testResultsFiles: '$(Pipeline.Workspace)/*.trx'
# - task: CopyFiles@2
# displayName: 'Copy build artifacts'
@@ -83,5 +86,5 @@ jobs:
- task: PublishPipelineArtifact@0
displayName: 'Publish build artifacts'
inputs:
- targetPath: '$(Pipeline.Workspace)/coverage-integration'
+ targetPath: '$(Pipeline.Workspace)'
artifactName: Coverage-Integration
From a811ea0b117cbc6ecd0e5d3124af2a9626eb8743 Mon Sep 17 00:00:00 2001
From: stijnmoreels <9039753+stijnmoreels@users.noreply.github.com>
Date: Thu, 1 Aug 2024 07:51:38 +0200
Subject: [PATCH 48/68] pr-fix: correct multi-line
---
build/templates/integration-tests.yml | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/build/templates/integration-tests.yml b/build/templates/integration-tests.yml
index 25a81e68..613d624f 100644
--- a/build/templates/integration-tests.yml
+++ b/build/templates/integration-tests.yml
@@ -69,7 +69,8 @@ jobs:
dotnet test src/**/$(Project).Tests.Integration.csproj \
--no-build --configuration $(Build.Configuration) \
--collect:"XPlat Code Coverage" \
- --logger trx --results-directory $(Pipeline.Workspace)
+ --logger trx --results-directory $(Pipeline.Workspace) \
+ /
displayName: 'Run integration tests'
- task: PublishTestResults@2
From 6f6fa61fa0b96a38fee71deaf33823fbb429f095 Mon Sep 17 00:00:00 2001
From: stijnmoreels <9039753+stijnmoreels@users.noreply.github.com>
Date: Thu, 1 Aug 2024 07:52:38 +0200
Subject: [PATCH 49/68] pr-fix: correct coverage path
---
build/templates/publish-coverage.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/build/templates/publish-coverage.yml b/build/templates/publish-coverage.yml
index 66accc57..4b8c63b2 100644
--- a/build/templates/publish-coverage.yml
+++ b/build/templates/publish-coverage.yml
@@ -22,7 +22,7 @@ jobs:
- task: reportgenerator@5
displayName: ReportGenerator
inputs:
- reports: '$(Agent.TempDirectory)/**/coverage.cobertura.xml'
+ reports: '$(Build.SourcesDirectory)/TestResults/**/coverage.cobertura.xml'
targetdir: coveragereport
reporttypes: Html;HtmlInline_AzurePipelines_Dark;Cobertura;MarkdownSummaryGithub
publishCodeCoverageResults: true
From 3daad7d0b3a518cec48172999c3d2a193f65863b Mon Sep 17 00:00:00 2001
From: stijnmoreels <9039753+stijnmoreels@users.noreply.github.com>
Date: Thu, 1 Aug 2024 08:06:49 +0200
Subject: [PATCH 50/68] pr-ifix: correct multi-line
---
build/templates/integration-tests.yml | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/build/templates/integration-tests.yml b/build/templates/integration-tests.yml
index 613d624f..25a81e68 100644
--- a/build/templates/integration-tests.yml
+++ b/build/templates/integration-tests.yml
@@ -69,8 +69,7 @@ jobs:
dotnet test src/**/$(Project).Tests.Integration.csproj \
--no-build --configuration $(Build.Configuration) \
--collect:"XPlat Code Coverage" \
- --logger trx --results-directory $(Pipeline.Workspace) \
- /
+ --logger trx --results-directory $(Pipeline.Workspace)
displayName: 'Run integration tests'
- task: PublishTestResults@2
From 6176860d81c4586cca639bbe0e81235cf256ae59 Mon Sep 17 00:00:00 2001
From: stijnmoreels <9039753+stijnmoreels@users.noreply.github.com>
Date: Thu, 1 Aug 2024 08:23:29 +0200
Subject: [PATCH 51/68] pr-fix: correct format
---
build/templates/integration-tests.yml | 2 +-
build/templates/unit-tests.yml | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/build/templates/integration-tests.yml b/build/templates/integration-tests.yml
index 25a81e68..4c8b2c04 100644
--- a/build/templates/integration-tests.yml
+++ b/build/templates/integration-tests.yml
@@ -74,7 +74,7 @@ jobs:
- task: PublishTestResults@2
inputs:
- testResultsFormat: 'XUnit'
+ testResultsFormat: 'VSTest'
testResultsFiles: '$(Pipeline.Workspace)/*.trx'
# - task: CopyFiles@2
diff --git a/build/templates/unit-tests.yml b/build/templates/unit-tests.yml
index eb3f3d9d..d8d0f7e1 100644
--- a/build/templates/unit-tests.yml
+++ b/build/templates/unit-tests.yml
@@ -37,7 +37,7 @@ jobs:
- task: PublishTestResults@2
inputs:
- testResultsFormat: 'XUnit'
+ testResultsFormat: 'VSTest'
testResultsFiles: '$(Pipeline.Workspace)/*.trx'
# - task: CopyFiles@2
From 7a3cce6184cf235cc948780eb2e52b2e701ce942 Mon Sep 17 00:00:00 2001
From: stijnmoreels <9039753+stijnmoreels@users.noreply.github.com>
Date: Thu, 1 Aug 2024 08:28:41 +0200
Subject: [PATCH 52/68] pr-fix: sinlge line
---
build/templates/integration-tests.yml | 8 +++-----
build/templates/unit-tests.yml | 3 ++-
2 files changed, 5 insertions(+), 6 deletions(-)
diff --git a/build/templates/integration-tests.yml b/build/templates/integration-tests.yml
index 4c8b2c04..9532191d 100644
--- a/build/templates/integration-tests.yml
+++ b/build/templates/integration-tests.yml
@@ -66,13 +66,11 @@ jobs:
# mergeTestResults: true
- script: |
- dotnet test src/**/$(Project).Tests.Integration.csproj \
- --no-build --configuration $(Build.Configuration) \
- --collect:"XPlat Code Coverage" \
- --logger trx --results-directory $(Pipeline.Workspace)
+ dotnet test src/**/$(Project).Tests.Integration.csproj --no-build --configuration $(Build.Configuration) --collect:"XPlat Code Coverage" --logger trx --results-directory $(Pipeline.Workspace)
displayName: 'Run integration tests'
- task: PublishTestResults@2
+ displayName: 'Publish integration test results'
inputs:
testResultsFormat: 'VSTest'
testResultsFiles: '$(Pipeline.Workspace)/*.trx'
@@ -84,7 +82,7 @@ jobs:
# targetFolder: '$(Pipeline.Workspace)/coverage-integration'
- task: PublishPipelineArtifact@0
- displayName: 'Publish build artifacts'
+ displayName: 'Publish integration test coverage artifacts'
inputs:
targetPath: '$(Pipeline.Workspace)'
artifactName: Coverage-Integration
diff --git a/build/templates/unit-tests.yml b/build/templates/unit-tests.yml
index d8d0f7e1..63c6c4b8 100644
--- a/build/templates/unit-tests.yml
+++ b/build/templates/unit-tests.yml
@@ -36,6 +36,7 @@ jobs:
dotnet test src/**/$(Project).Tests.Unit.csproj --configuration $(Build.Configuration) --collect:"XPlat Code Coverage" --logger trx --results-directory $(Pipeline.Workspace)
- task: PublishTestResults@2
+ displayName: 'Publish unit test results'
inputs:
testResultsFormat: 'VSTest'
testResultsFiles: '$(Pipeline.Workspace)/*.trx'
@@ -47,7 +48,7 @@ jobs:
# targetFolder: '$(Pipeline.Workspace)/coverage-unit'
- task: PublishPipelineArtifact@0
- displayName: 'Publish build artifacts'
+ displayName: 'Publish integration test coverage artifacts'
inputs:
targetPath: '$(Pipeline.Workspace)'
artifactName: Coverage-Unit
\ No newline at end of file
From c8cdcd9e6c5256df441a0587e97392d069c2774c Mon Sep 17 00:00:00 2001
From: stijnmoreels <9039753+stijnmoreels@users.noreply.github.com>
Date: Thu, 1 Aug 2024 08:36:45 +0200
Subject: [PATCH 53/68] pr-fix: w/o no-build
---
build/templates/integration-tests.yml | 4 ++--
build/templates/unit-tests.yml | 3 ++-
2 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/build/templates/integration-tests.yml b/build/templates/integration-tests.yml
index 9532191d..ff2ce154 100644
--- a/build/templates/integration-tests.yml
+++ b/build/templates/integration-tests.yml
@@ -66,7 +66,7 @@ jobs:
# mergeTestResults: true
- script: |
- dotnet test src/**/$(Project).Tests.Integration.csproj --no-build --configuration $(Build.Configuration) --collect:"XPlat Code Coverage" --logger trx --results-directory $(Pipeline.Workspace)
+ dotnet test src/**/$(Project).Tests.Integration.csproj --configuration $(Build.Configuration) --collect:"XPlat Code Coverage" --logger trx --results-directory $(Pipeline.Workspace)
displayName: 'Run integration tests'
- task: PublishTestResults@2
@@ -82,7 +82,7 @@ jobs:
# targetFolder: '$(Pipeline.Workspace)/coverage-integration'
- task: PublishPipelineArtifact@0
- displayName: 'Publish integration test coverage artifacts'
+ displayName: 'Publish code coverage artifacts'
inputs:
targetPath: '$(Pipeline.Workspace)'
artifactName: Coverage-Integration
diff --git a/build/templates/unit-tests.yml b/build/templates/unit-tests.yml
index 63c6c4b8..d1338502 100644
--- a/build/templates/unit-tests.yml
+++ b/build/templates/unit-tests.yml
@@ -34,6 +34,7 @@ jobs:
# mergeTestResults: true
- script: |
dotnet test src/**/$(Project).Tests.Unit.csproj --configuration $(Build.Configuration) --collect:"XPlat Code Coverage" --logger trx --results-directory $(Pipeline.Workspace)
+ displayName: 'Run unit tests'
- task: PublishTestResults@2
displayName: 'Publish unit test results'
@@ -48,7 +49,7 @@ jobs:
# targetFolder: '$(Pipeline.Workspace)/coverage-unit'
- task: PublishPipelineArtifact@0
- displayName: 'Publish integration test coverage artifacts'
+ displayName: 'Publish code coverage artifacts'
inputs:
targetPath: '$(Pipeline.Workspace)'
artifactName: Coverage-Unit
\ No newline at end of file
From 54cce008c45f2c70f8762e5d46cf4689f64d4c1b Mon Sep 17 00:00:00 2001
From: stijnmoreels <9039753+stijnmoreels@users.noreply.github.com>
Date: Thu, 1 Aug 2024 09:03:23 +0200
Subject: [PATCH 54/68] pr-fix: publish to gh
---
build/templates/integration-tests.yml | 16 -----------
build/templates/publish-coverage.yml | 40 +++++++++++++++++++++++++++
build/templates/unit-tests.yml | 15 ----------
3 files changed, 40 insertions(+), 31 deletions(-)
diff --git a/build/templates/integration-tests.yml b/build/templates/integration-tests.yml
index ff2ce154..8ab49f10 100644
--- a/build/templates/integration-tests.yml
+++ b/build/templates/integration-tests.yml
@@ -55,16 +55,6 @@ jobs:
tokenPrefix: '#{'
tokenSuffix: '}#'
- # - task: DotNetCoreCLI@2
- # displayName: 'Run integration tests'
- # inputs:
- # command: test
- # projects: 'src/**/$(Project).Tests.Integration.csproj'
- # arguments: '--configuration $(Build.Configuration) --collect:"XPlat Code Coverage"'
- # nobuild: true
- # publishTestResults: true
- # mergeTestResults: true
-
- script: |
dotnet test src/**/$(Project).Tests.Integration.csproj --configuration $(Build.Configuration) --collect:"XPlat Code Coverage" --logger trx --results-directory $(Pipeline.Workspace)
displayName: 'Run integration tests'
@@ -75,12 +65,6 @@ jobs:
testResultsFormat: 'VSTest'
testResultsFiles: '$(Pipeline.Workspace)/*.trx'
- # - task: CopyFiles@2
- # displayName: 'Copy build artifacts'
- # inputs:
- # contents: '$(Agent.TempDirectory)/**'
- # targetFolder: '$(Pipeline.Workspace)/coverage-integration'
-
- task: PublishPipelineArtifact@0
displayName: 'Publish code coverage artifacts'
inputs:
diff --git a/build/templates/publish-coverage.yml b/build/templates/publish-coverage.yml
index 4b8c63b2..b907f4d2 100644
--- a/build/templates/publish-coverage.yml
+++ b/build/templates/publish-coverage.yml
@@ -26,3 +26,43 @@ jobs:
targetdir: coveragereport
reporttypes: Html;HtmlInline_AzurePipelines_Dark;Cobertura;MarkdownSummaryGithub
publishCodeCoverageResults: true
+
+ - script: sudo apt install gh
+ displayName: 'Install GitHub CLI'
+
+ - powershell: |
+ gh auth login --with-token $(GITHUB_TOKEN)
+ gh repo view
+
+ $summary = Get-Content -Path './coveragereport/SummaryGithub.md' -Raw
+ $lineCoveragePattern = "\*\*Line coverage:\*\*\s*\|\s*(\d+\.\d+%)"
+ $branchCoveragePattern = "\*\*Branch coverage:\*\*\s*\|\s*(\d+\.\d+%)"
+
+ $lineCoverage = "N/A"
+ if ($summary -match $lineCoveragePattern) {
+ $lineCoverage = $matches[1]
+ Write-Host "Line coverage: $lineCoverage"
+ } else {
+ Write-Host "Line coverage not found"
+ }
+
+ $branchCoverage = "N/A"
+ if ($summary -match $branchCoveragePattern) {
+ $branchCoverage = $matches[1]
+ Write-Host "Branch coverage: $branchCoverage"
+ } else {
+ Write-Host "Branch coverage not found"
+ }
+
+ $comments = gh pr view $env:PR_NUMBER --json comments --jq '.comments[].body'
+ $commentExists = $comments | Where-Object { $_ -like "*Code coverage summary*" }
+ $content = "## 🧪 Code coverage summary\n\nLine coverage: $lineCoverage\nBranch coverage: $branchCoverage"
+
+ if ($commentExists) {
+ gh pr comment $env:PR_NUMBER --body $content --edit-last
+ } else {
+ gh pr comment $env:PR_NUMBER --body $content
+ }
+ env:
+ GITHUB_TOKEN: $(GITHUB_TOKEN)
+ PR_NUMBER: $(System.PullRequest.PullRequestNumber)
diff --git a/build/templates/unit-tests.yml b/build/templates/unit-tests.yml
index d1338502..22c28c3c 100644
--- a/build/templates/unit-tests.yml
+++ b/build/templates/unit-tests.yml
@@ -23,15 +23,6 @@ jobs:
version: '$(DotNet.Sdk.Version)'
includePreviewVersions: $(DotNet.Sdk.IncludePreviewVersions)
- # - task: DotNetCoreCLI@2
- # displayName: 'Run unit tests'
- # inputs:
- # command: test
- # projects: 'src/**/$(Project).Tests.Unit.csproj'
- # arguments: '--configuration $(Build.Configuration) --collect:"XPlat Code Coverage"'
- # nobuild: true
- # publishTestResults: true
- # mergeTestResults: true
- script: |
dotnet test src/**/$(Project).Tests.Unit.csproj --configuration $(Build.Configuration) --collect:"XPlat Code Coverage" --logger trx --results-directory $(Pipeline.Workspace)
displayName: 'Run unit tests'
@@ -42,12 +33,6 @@ jobs:
testResultsFormat: 'VSTest'
testResultsFiles: '$(Pipeline.Workspace)/*.trx'
- # - task: CopyFiles@2
- # displayName: 'Copy build artifacts'
- # inputs:
- # contents: '$(Agent.TempDirectory)/**'
- # targetFolder: '$(Pipeline.Workspace)/coverage-unit'
-
- task: PublishPipelineArtifact@0
displayName: 'Publish code coverage artifacts'
inputs:
From baed18ff285beea60034986ae2a86a8c000df803 Mon Sep 17 00:00:00 2001
From: stijnmoreels <9039753+stijnmoreels@users.noreply.github.com>
Date: Thu, 1 Aug 2024 09:12:40 +0200
Subject: [PATCH 55/68] pr-fix: update comment
---
build/templates/publish-coverage.yml | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/build/templates/publish-coverage.yml b/build/templates/publish-coverage.yml
index b907f4d2..640a1076 100644
--- a/build/templates/publish-coverage.yml
+++ b/build/templates/publish-coverage.yml
@@ -55,8 +55,11 @@ jobs:
}
$comments = gh pr view $env:PR_NUMBER --json comments --jq '.comments[].body'
- $commentExists = $comments | Where-Object { $_ -like "*Code coverage summary*" }
- $content = "## 🧪 Code coverage summary\n\nLine coverage: $lineCoverage\nBranch coverage: $branchCoverage"
+ $commentExists = $comments | Where-Object { $_ -like "*Code coverage*" -and -like "*summary*" }
+ $buildId = $env:BUILD_BUILDID
+ $content = @"## 🧪 [Code coverage](https://dev.azure.com/codit/Arcus/_build/results?buildId=$buildId&view=codecoverage-tab) summary
+ Line coverage: **$lineCoverage**
+ Branch coverage: **$branchCoverage**"@
if ($commentExists) {
gh pr comment $env:PR_NUMBER --body $content --edit-last
From cd67a8390524fcab1a7ae94371910d217d6436a2 Mon Sep 17 00:00:00 2001
From: stijnmoreels <9039753+stijnmoreels@users.noreply.github.com>
Date: Thu, 1 Aug 2024 09:20:49 +0200
Subject: [PATCH 56/68] pr-fix: motivational message
---
build/templates/publish-coverage.yml | 17 ++++++++++++++---
1 file changed, 14 insertions(+), 3 deletions(-)
diff --git a/build/templates/publish-coverage.yml b/build/templates/publish-coverage.yml
index 640a1076..c3c10731 100644
--- a/build/templates/publish-coverage.yml
+++ b/build/templates/publish-coverage.yml
@@ -54,10 +54,21 @@ jobs:
Write-Host "Branch coverage not found"
}
- $comments = gh pr view $env:PR_NUMBER --json comments --jq '.comments[].body'
- $commentExists = $comments | Where-Object { $_ -like "*Code coverage*" -and -like "*summary*" }
+ $lineCoverageValue = [double]($lineCoverage -replace '%', '')
+ $branchCoverageValue = [double]($branchCoverage -replace '%', '')
$buildId = $env:BUILD_BUILDID
- $content = @"## 🧪 [Code coverage](https://dev.azure.com/codit/Arcus/_build/results?buildId=$buildId&view=codecoverage-tab) summary
+ $reportUrl = "https://dev.azure.com/codit/Arcus/_build/results?buildId=$buildId&view=codecoverage-tab"
+
+ if ($lineCoverageValue -gt 80 -and $branchCoverage -gt 80) {
+ $motivationalMessage = "Great job! Your code coverage is higher than my caffeine levels! ☕"
+ } else {
+ $motivationalMessage = "Your code coverage is not fully reaching 80% yet. Please inspect [the report]($reportUrl) to find possible improvements and before you know it, your code coverage will reach the stars! 🚀"
+ }
+
+ $comments = gh pr view $env:PR_NUMBER --json comments --jq '.comments[].body'
+ $commentExists = $comments | Where-Object { $_ -like "*Code coverage*" -and $_ -like "*summary*" }
+
+ $content = @"## 🧪 [Code coverage]($reportUrl) summary
Line coverage: **$lineCoverage**
Branch coverage: **$branchCoverage**"@
From 4bdcb6cbac61d43b5d6b735f1b82db8111568766 Mon Sep 17 00:00:00 2001
From: stijnmoreels <9039753+stijnmoreels@users.noreply.github.com>
Date: Thu, 1 Aug 2024 09:28:04 +0200
Subject: [PATCH 57/68] pr-fix: correct syntax error
---
build/templates/publish-coverage.yml | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/build/templates/publish-coverage.yml b/build/templates/publish-coverage.yml
index c3c10731..f78e5803 100644
--- a/build/templates/publish-coverage.yml
+++ b/build/templates/publish-coverage.yml
@@ -68,9 +68,13 @@ jobs:
$comments = gh pr view $env:PR_NUMBER --json comments --jq '.comments[].body'
$commentExists = $comments | Where-Object { $_ -like "*Code coverage*" -and $_ -like "*summary*" }
- $content = @"## 🧪 [Code coverage]($reportUrl) summary
+ $content = @"
+ ## 🧪 [Code coverage]($reportUrl) summary
Line coverage: **$lineCoverage**
- Branch coverage: **$branchCoverage**"@
+ Branch coverage: **$branchCoverage**
+
+ $motivationalMessage
+ "@
if ($commentExists) {
gh pr comment $env:PR_NUMBER --body $content --edit-last
From 658dd22093f43c4000d692c0fc49007a2e43eca3 Mon Sep 17 00:00:00 2001
From: stijnmoreels <9039753+stijnmoreels@users.noreply.github.com>
Date: Thu, 1 Aug 2024 09:44:55 +0200
Subject: [PATCH 58/68] pr-fix: improve coverage
---
build/templates/publish-coverage.yml | 19 ++++--
.../LoggerSinkConfigurationExtensionsTests.cs | 62 +++++++++++++++++++
.../Logging/XunitTestLoggerTests.cs | 53 ++++++++++++++++
3 files changed, 129 insertions(+), 5 deletions(-)
create mode 100644 src/Arcus.Testing.Tests.Unit/Logging/XunitTestLoggerTests.cs
diff --git a/build/templates/publish-coverage.yml b/build/templates/publish-coverage.yml
index f78e5803..82864f46 100644
--- a/build/templates/publish-coverage.yml
+++ b/build/templates/publish-coverage.yml
@@ -59,19 +59,28 @@ jobs:
$buildId = $env:BUILD_BUILDID
$reportUrl = "https://dev.azure.com/codit/Arcus/_build/results?buildId=$buildId&view=codecoverage-tab"
- if ($lineCoverageValue -gt 80 -and $branchCoverage -gt 80) {
- $motivationalMessage = "Great job! Your code coverage is higher than my caffeine levels! ☕"
+ $minCoverage = 80
+ if ($lineCoverageValue -ge $minCoverage -and $branchCoverage -ge $minCoverage) {
+ $motivationalMessage = "Great job! 😎 Your code coverage is higher than my caffeine levels! ☕"
} else {
- $motivationalMessage = "Your code coverage is not fully reaching 80% yet. Please inspect [the report]($reportUrl) to find possible improvements and before you know it, your code coverage will reach the stars! 🚀"
+ $motivationalMessage = @"
+ 😟 Your code coverage is not fully reaching **80%** yet.
+ Please inspect [the report]($reportUrl) to find possible improvements and before you know it, your code coverage will reach the stars! 🚀
+ "@
}
+ if ($lineCoverageValue -ge $minCoverage) { $lineCoverageBadge = "🟢" } else { $lineCoverageBadge = "🔴" }
+ if ($branchCoverageValue -ge $minCoverage) { $branchCoverageBadge = "🟢" } else { $branchCoverageBadge = "🔴" }
+
$comments = gh pr view $env:PR_NUMBER --json comments --jq '.comments[].body'
$commentExists = $comments | Where-Object { $_ -like "*Code coverage*" -and $_ -like "*summary*" }
$content = @"
## 🧪 [Code coverage]($reportUrl) summary
- Line coverage: **$lineCoverage**
- Branch coverage: **$branchCoverage**
+ | Metric | Value |
+ | ------ | ----- |
+ | Line coverage | $lineCoverageBadge **$lineCoverage** |
+ | Branch coverage | $branchCoverageBadge **$branchCoverage** |
$motivationalMessage
"@
diff --git a/src/Arcus.Testing.Tests.Unit/Logging/LoggerSinkConfigurationExtensionsTests.cs b/src/Arcus.Testing.Tests.Unit/Logging/LoggerSinkConfigurationExtensionsTests.cs
index f19c344e..ff14d42a 100644
--- a/src/Arcus.Testing.Tests.Unit/Logging/LoggerSinkConfigurationExtensionsTests.cs
+++ b/src/Arcus.Testing.Tests.Unit/Logging/LoggerSinkConfigurationExtensionsTests.cs
@@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
+using System.IO;
using Arcus.Testing.Tests.Unit.Logging.Fixture;
using Bogus;
using Serilog;
@@ -48,6 +49,23 @@ public void AddNUnitTestLogging_WithMessage_LogsMessage()
mockWriter.VerifyWritten(expected);
}
+ [Fact]
+ public void AddNUnitTestLogging_WithError_LogsMessage()
+ {
+ // Arrange
+ var mockWriter = new MockTestWriter();
+ var config = new LoggerConfiguration();
+
+ // Act
+ config.WriteTo.NUnitTestLogging(TextWriter.Null, mockWriter);
+
+ // Assert
+ ILogger logger = config.CreateLogger();
+ string expected = Bogus.Lorem.Sentence();
+ logger.Error(expected);
+ mockWriter.VerifyWritten(expected);
+ }
+
[Fact]
public void AddMSTestLogging_WithMessage_LogsMessage()
{
@@ -76,6 +94,50 @@ public void AddXunitTestLogging_WithoutOutputWriter_Fails()
() => config.WriteTo.XunitTestLogging(outputWriter: null));
}
+ [Fact]
+ public void AddNUnitTestLogging_WithoutOutputWriter_Fails()
+ {
+ // Arrange
+ var config = new LoggerConfiguration();
+
+ // Act / Assert
+ Assert.ThrowsAny(
+ () => config.WriteTo.NUnitTestLogging(outputWriter: null));
+ }
+
+ [Fact]
+ public void AddNUnitTestLoggingWithError_WithoutOutputWriter_Fails()
+ {
+ // Arrange
+ var config = new LoggerConfiguration();
+
+ // Act / Assert
+ Assert.ThrowsAny(
+ () => config.WriteTo.NUnitTestLogging(outputWriter: null, TextWriter.Null));
+ }
+
+ [Fact]
+ public void AddNUnitTestLoggingWithError_WithoutErrorWriter_Fails()
+ {
+ // Arrange
+ var config = new LoggerConfiguration();
+
+ // Act / Assert
+ Assert.ThrowsAny(
+ () => config.WriteTo.NUnitTestLogging(TextWriter.Null, errorWriter: null));
+ }
+
+ [Fact]
+ public void AddMSTestTestLogging_WithoutOutputWriter_Fails()
+ {
+ // Arrange
+ var config = new LoggerConfiguration();
+
+ // Act / Assert
+ Assert.ThrowsAny(
+ () => config.WriteTo.MSTestLogging(testContext: null));
+ }
+
public void WriteLine(string message)
{
_messages.Add(message);
diff --git a/src/Arcus.Testing.Tests.Unit/Logging/XunitTestLoggerTests.cs b/src/Arcus.Testing.Tests.Unit/Logging/XunitTestLoggerTests.cs
new file mode 100644
index 00000000..929f5c99
--- /dev/null
+++ b/src/Arcus.Testing.Tests.Unit/Logging/XunitTestLoggerTests.cs
@@ -0,0 +1,53 @@
+using System.Collections.Generic;
+using Bogus;
+using Microsoft.Extensions.Logging;
+using Xunit;
+using Xunit.Abstractions;
+
+namespace Arcus.Testing.Tests.Unit.Logging
+{
+ public class XunitTestLoggerTests
+ {
+ private static readonly Faker Bogus = new();
+
+ [Fact]
+ public void XunitLog_WithMessage_Succeeds()
+ {
+ // Arrange
+ var spyWriter = new SpyTestWriter();
+ var logger = new XunitTestLogger(spyWriter);
+ string message = Bogus.Lorem.Sentence();
+
+ // Act
+ logger.LogInformation(message);
+
+ // Assert
+ Assert.Contains(spyWriter.Messages, msg => msg.Contains(message));
+ }
+
+ [Fact]
+ public void XunitTLog_WithMessage_Succeeds()
+ {
+ // Arrange
+ var spyWriter = new SpyTestWriter();
+ var logger = new XunitTestLogger(spyWriter);
+ string message = Bogus.Lorem.Sentence();
+
+ // Act
+ logger.LogInformation(message);
+
+ // Assert
+ Assert.Contains(spyWriter.Messages, msg => msg.Contains(message));
+ }
+
+ private class SpyTestWriter : ITestOutputHelper
+ {
+ public List Messages { get; } = new List();
+ public void WriteLine(string message) => Messages.Add(message);
+ public void WriteLine(string format, params object[] args)
+ {
+ Messages.Add(string.Format(format, args));
+ }
+ }
+ }
+}
From c81e53ad21c922198a7f5a15bd5465636f652e01 Mon Sep 17 00:00:00 2001
From: stijnmoreels <9039753+stijnmoreels@users.noreply.github.com>
Date: Thu, 1 Aug 2024 09:57:49 +0200
Subject: [PATCH 59/68] pr-fix: error multi-line
---
build/templates/publish-coverage.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/build/templates/publish-coverage.yml b/build/templates/publish-coverage.yml
index 82864f46..3978f495 100644
--- a/build/templates/publish-coverage.yml
+++ b/build/templates/publish-coverage.yml
@@ -66,7 +66,7 @@ jobs:
$motivationalMessage = @"
😟 Your code coverage is not fully reaching **80%** yet.
Please inspect [the report]($reportUrl) to find possible improvements and before you know it, your code coverage will reach the stars! 🚀
- "@
+ "@
}
if ($lineCoverageValue -ge $minCoverage) { $lineCoverageBadge = "🟢" } else { $lineCoverageBadge = "🔴" }
From eea37dace61a06edc921c1d3329a653d92918feb Mon Sep 17 00:00:00 2001
From: stijnmoreels <9039753+stijnmoreels@users.noreply.github.com>
Date: Thu, 1 Aug 2024 10:20:38 +0200
Subject: [PATCH 60/68] pr-fix: more coverage + flexibe retrieval
---
build/templates/publish-coverage.yml | 6 +-
.../Logging/ILoggerBuilderExtensionsTests.cs | 63 +++++++++++++++++++
.../Logging/SpyLoggerTests.cs | 10 +++
3 files changed, 77 insertions(+), 2 deletions(-)
diff --git a/build/templates/publish-coverage.yml b/build/templates/publish-coverage.yml
index 3978f495..19a6231c 100644
--- a/build/templates/publish-coverage.yml
+++ b/build/templates/publish-coverage.yml
@@ -35,8 +35,10 @@ jobs:
gh repo view
$summary = Get-Content -Path './coveragereport/SummaryGithub.md' -Raw
- $lineCoveragePattern = "\*\*Line coverage:\*\*\s*\|\s*(\d+\.\d+%)"
- $branchCoveragePattern = "\*\*Branch coverage:\*\*\s*\|\s*(\d+\.\d+%)"
+ Write-Host: "Summary: $summary"
+
+ $lineCoveragePattern = "\*\*Line coverage:\*\*\s*\|\s*(\d+(\.\d+)?%)"
+ $branchCoveragePattern = "\*\*Branch coverage:\*\*\s*\|\s*(\d+(\.\d)?+%)"
$lineCoverage = "N/A"
if ($summary -match $lineCoveragePattern) {
diff --git a/src/Arcus.Testing.Tests.Unit/Logging/ILoggerBuilderExtensionsTests.cs b/src/Arcus.Testing.Tests.Unit/Logging/ILoggerBuilderExtensionsTests.cs
index e41bd45b..0461d4da 100644
--- a/src/Arcus.Testing.Tests.Unit/Logging/ILoggerBuilderExtensionsTests.cs
+++ b/src/Arcus.Testing.Tests.Unit/Logging/ILoggerBuilderExtensionsTests.cs
@@ -56,6 +56,58 @@ public void AddNUnitTestLogging_WithMessage_LogsMessage()
mockWriter.VerifyWritten(expected);
}
+ [Fact]
+ public void AddNUnitTestLogging_WithError_LogsMessage()
+ {
+ // Arrange
+ var mockWriter = new MockTestWriter();
+ var builder = new HostBuilder();
+
+ // Act
+ builder.ConfigureLogging(logging => logging.AddNUnitTestLogging(TextWriter.Null, mockWriter));
+
+ // Assert
+ using IHost host = builder.Build();
+ var logger = host.Services.GetRequiredService>();
+
+ string expected = Bogus.Lorem.Sentence();
+ logger.LogError(expected);
+ mockWriter.VerifyWritten(expected);
+ }
+
+ [Fact]
+ public void AddNUnitTestLogging_WithoutOutputWriter_Fails()
+ {
+ // Arrange
+ var builder = new HostBuilder();
+ builder.ConfigureLogging(logging => logging.AddNUnitTestLogging(outputWriter: null));
+
+ // Act / Assert
+ Assert.ThrowsAny(() => builder.Build());
+ }
+
+ [Fact]
+ public void AddNUnitTestLoggingWithError_WithoutOutputWriter_Fails()
+ {
+ // Arrange
+ var builder = new HostBuilder();
+ builder.ConfigureLogging(logging => logging.AddNUnitTestLogging(outputWriter: null, TextWriter.Null));
+
+ // Act / Assert
+ Assert.ThrowsAny(() => builder.Build());
+ }
+
+ [Fact]
+ public void AddNUnitTestLoggingWithError_WithoutErrorWriter_Fails()
+ {
+ // Arrange
+ var builder = new HostBuilder();
+ builder.ConfigureLogging(logging => logging.AddNUnitTestLogging(TextWriter.Null, errorWriter: null));
+
+ // Act / Assert
+ Assert.ThrowsAny(() => builder.Build());
+ }
+
[Fact]
public void AddMSTestLogging_WithMessage_LogsMessage()
{
@@ -75,6 +127,17 @@ public void AddMSTestLogging_WithMessage_LogsMessage()
mockContext.VerifyWritten(expected);
}
+ [Fact]
+ public void AddMSTestLogging_WithoutContext_Fails()
+ {
+ // Arrange
+ var builder = new HostBuilder();
+ builder.ConfigureLogging(logging => logging.AddMSTestLogging(testContext: null));
+
+ // Act / Assert
+ Assert.ThrowsAny(() => builder.Build());
+ }
+
[Fact]
public void AddXunitTestLogging_WithoutBuilder_Throws()
{
diff --git a/src/Arcus.Testing.Tests.Unit/Logging/SpyLoggerTests.cs b/src/Arcus.Testing.Tests.Unit/Logging/SpyLoggerTests.cs
index ceea9e98..984ea80c 100644
--- a/src/Arcus.Testing.Tests.Unit/Logging/SpyLoggerTests.cs
+++ b/src/Arcus.Testing.Tests.Unit/Logging/SpyLoggerTests.cs
@@ -84,5 +84,15 @@ public void LogSeveralMessages_WithRandomValues_GetsCollected(InMemoryLogger log
});
});
}
+
+ [Fact]
+ public void Log_WithoutFormatter_Fails()
+ {
+ // Arrange
+ var logger = new InMemoryLogger();
+
+ // Act / Assert
+ Assert.ThrowsAny(() => logger.Log(LogLevel.Information, new EventId(), state: new object(), exception: new Exception(), formatter: null));
+ }
}
}
From e36283c415ee4c12853374b5995f3bf385b7ecf0 Mon Sep 17 00:00:00 2001
From: stijnmoreels <9039753+stijnmoreels@users.noreply.github.com>
Date: Thu, 1 Aug 2024 10:27:17 +0200
Subject: [PATCH 61/68] pr-fix: write host
---
build/templates/publish-coverage.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/build/templates/publish-coverage.yml b/build/templates/publish-coverage.yml
index 19a6231c..3f782cac 100644
--- a/build/templates/publish-coverage.yml
+++ b/build/templates/publish-coverage.yml
@@ -35,7 +35,7 @@ jobs:
gh repo view
$summary = Get-Content -Path './coveragereport/SummaryGithub.md' -Raw
- Write-Host: "Summary: $summary"
+ Write-Host "Summary: $summary"
$lineCoveragePattern = "\*\*Line coverage:\*\*\s*\|\s*(\d+(\.\d+)?%)"
$branchCoveragePattern = "\*\*Branch coverage:\*\*\s*\|\s*(\d+(\.\d)?+%)"
From e963ff38389eb6c14dd9c096323c19eb9ef3570f Mon Sep 17 00:00:00 2001
From: stijnmoreels <9039753+stijnmoreels@users.noreply.github.com>
Date: Thu, 1 Aug 2024 10:34:52 +0200
Subject: [PATCH 62/68] pr-fix: correct pattern
---
build/templates/publish-coverage.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/build/templates/publish-coverage.yml b/build/templates/publish-coverage.yml
index 3f782cac..7742637b 100644
--- a/build/templates/publish-coverage.yml
+++ b/build/templates/publish-coverage.yml
@@ -38,7 +38,7 @@ jobs:
Write-Host "Summary: $summary"
$lineCoveragePattern = "\*\*Line coverage:\*\*\s*\|\s*(\d+(\.\d+)?%)"
- $branchCoveragePattern = "\*\*Branch coverage:\*\*\s*\|\s*(\d+(\.\d)?+%)"
+ $branchCoveragePattern = "\*\*Branch coverage:\*\*\s*\|\s*(\d+(\.\d+)?%)"
$lineCoverage = "N/A"
if ($summary -match $lineCoveragePattern) {
From 70230dd1813756abf08ac25bf7f113feab7f4f55 Mon Sep 17 00:00:00 2001
From: stijnmoreels <9039753+stijnmoreels@users.noreply.github.com>
Date: Thu, 1 Aug 2024 10:50:51 +0200
Subject: [PATCH 63/68] pr-fix: update with more coverage
---
build/templates/publish-coverage.yml | 3 +-
.../Assert_/AssertXsltTests.cs | 51 ++++++++++++++++++-
.../LoggerSinkConfigurationExtensionsTests.cs | 8 ++-
.../Logging/MSTestLoggerTests.cs | 25 ++++++++-
4 files changed, 83 insertions(+), 4 deletions(-)
diff --git a/build/templates/publish-coverage.yml b/build/templates/publish-coverage.yml
index 7742637b..376fd52f 100644
--- a/build/templates/publish-coverage.yml
+++ b/build/templates/publish-coverage.yml
@@ -20,7 +20,7 @@ jobs:
path: '$(Build.SourcesDirectory)/TestResults'
- task: reportgenerator@5
- displayName: ReportGenerator
+ displayName: 'Generate code coverage report'
inputs:
reports: '$(Build.SourcesDirectory)/TestResults/**/coverage.cobertura.xml'
targetdir: coveragereport
@@ -95,3 +95,4 @@ jobs:
env:
GITHUB_TOKEN: $(GITHUB_TOKEN)
PR_NUMBER: $(System.PullRequest.PullRequestNumber)
+ displayName: 'Publish code coverage summary on GitHub'
diff --git a/src/Arcus.Testing.Tests.Unit/Assert_/AssertXsltTests.cs b/src/Arcus.Testing.Tests.Unit/Assert_/AssertXsltTests.cs
index 212261ba..588a1517 100644
--- a/src/Arcus.Testing.Tests.Unit/Assert_/AssertXsltTests.cs
+++ b/src/Arcus.Testing.Tests.Unit/Assert_/AssertXsltTests.cs
@@ -1,4 +1,5 @@
-using System.IO;
+using System;
+using System.IO;
using System.Text.Json;
using System.Xml;
using System.Xml.Xsl;
@@ -176,5 +177,53 @@ public void Load_WithInvalidXml_ThrowsWithDescription()
Assert.Contains(nameof(AssertXslt), exception.Message);
Assert.Contains("XSLT contents", exception.Message);
}
+
+ [Fact]
+ public void TransformXml_WithoutTransformer_Fails()
+ {
+ Assert.ThrowsAny(() => AssertXslt.TransformToXml(xsltTransformer: null, inputXml: ""));
+ }
+
+ [Fact]
+ public void TransformXml_WithoutInput_Fails()
+ {
+ Assert.ThrowsAny(() => AssertXslt.TransformToXml("", inputXml: null));
+ }
+
+ [Fact]
+ public void TransformXmlNode_WithoutTransformer_Fails()
+ {
+ Assert.ThrowsAny(() => AssertXslt.TransformToXml(transformer: null, new XmlDocument()));
+ }
+
+ [Fact]
+ public void TransformXmlNode_WithoutInput_Fails()
+ {
+ Assert.ThrowsAny(() => AssertXslt.TransformToXml(new XslCompiledTransform(), input: null));
+ }
+
+ [Fact]
+ public void TransformXmlArg_WithoutTransformer_Fails()
+ {
+ Assert.ThrowsAny(() => AssertXslt.TransformToXml(xsltTransformer: null, inputXml: "", new XsltArgumentList()));
+ }
+
+ [Fact]
+ public void TransformXmlArg_WithoutInput_Fails()
+ {
+ Assert.ThrowsAny(() => AssertXslt.TransformToXml("", inputXml: null, new XsltArgumentList()));
+ }
+
+ [Fact]
+ public void TransformXmlNodeArg_WithoutTransformer_Fails()
+ {
+ Assert.ThrowsAny(() => AssertXslt.TransformToXml(transformer: null, new XmlDocument(), new XsltArgumentList()));
+ }
+
+ [Fact]
+ public void TransformXmlNodeArg_WithoutInput_Fails()
+ {
+ Assert.ThrowsAny(() => AssertXslt.TransformToXml(new XslCompiledTransform(), input: null, new XsltArgumentList()));
+ }
}
}
diff --git a/src/Arcus.Testing.Tests.Unit/Logging/LoggerSinkConfigurationExtensionsTests.cs b/src/Arcus.Testing.Tests.Unit/Logging/LoggerSinkConfigurationExtensionsTests.cs
index ff14d42a..d4eda1f6 100644
--- a/src/Arcus.Testing.Tests.Unit/Logging/LoggerSinkConfigurationExtensionsTests.cs
+++ b/src/Arcus.Testing.Tests.Unit/Logging/LoggerSinkConfigurationExtensionsTests.cs
@@ -128,7 +128,7 @@ public void AddNUnitTestLoggingWithError_WithoutErrorWriter_Fails()
}
[Fact]
- public void AddMSTestTestLogging_WithoutOutputWriter_Fails()
+ public void AddMSTestTestLogging_WithoutTestContext_Fails()
{
// Arrange
var config = new LoggerConfiguration();
@@ -138,6 +138,12 @@ public void AddMSTestTestLogging_WithoutOutputWriter_Fails()
() => config.WriteTo.MSTestLogging(testContext: null));
}
+ [Fact]
+ public void MsTestLogSink_WithoutTestContext_Fails()
+ {
+ Assert.ThrowsAny(() => new MSTestLogEventSink(context: null));
+ }
+
public void WriteLine(string message)
{
_messages.Add(message);
diff --git a/src/Arcus.Testing.Tests.Unit/Logging/MSTestLoggerTests.cs b/src/Arcus.Testing.Tests.Unit/Logging/MSTestLoggerTests.cs
index 77642d0e..b477359a 100644
--- a/src/Arcus.Testing.Tests.Unit/Logging/MSTestLoggerTests.cs
+++ b/src/Arcus.Testing.Tests.Unit/Logging/MSTestLoggerTests.cs
@@ -1,4 +1,5 @@
-using Arcus.Testing.Tests.Unit.Logging.Fixture;
+using System;
+using Arcus.Testing.Tests.Unit.Logging.Fixture;
using Bogus;
using Microsoft.Extensions.Logging;
using Xunit;
@@ -23,5 +24,27 @@ public void Log_WithMessage_Succeeds()
// Assert
mockContext.VerifyWritten(message);
}
+
+ [Fact]
+ public void Log_WithError_Succeeds()
+ {
+ // Arrange
+ var mockContext = new MockTestContext();
+ var logger = new MSTestLogger(mockContext);
+ Exception exception = Bogus.System.Exception();
+ string message = Bogus.Lorem.Sentence();
+
+ // Act
+ logger.LogError(exception, message);
+
+ // Assert
+ mockContext.VerifyWritten(message);
+ }
+
+ [Fact]
+ public void Create_WithoutContext_Fails()
+ {
+ Assert.ThrowsAny(() => new MSTestLogger(testContext: null));
+ }
}
}
From 8668cfb108765b2096d05a523dcf160de2491f21 Mon Sep 17 00:00:00 2001
From: stijnmoreels <9039753+stijnmoreels@users.noreply.github.com>
Date: Thu, 1 Aug 2024 11:01:17 +0200
Subject: [PATCH 64/68] pr-fix: improve branch coverage
---
.../Assert_/AssertXsltTests.cs | 6 -----
.../Core/AsyncDisposableTests.cs | 26 +++++++++++++++++++
2 files changed, 26 insertions(+), 6 deletions(-)
create mode 100644 src/Arcus.Testing.Tests.Unit/Core/AsyncDisposableTests.cs
diff --git a/src/Arcus.Testing.Tests.Unit/Assert_/AssertXsltTests.cs b/src/Arcus.Testing.Tests.Unit/Assert_/AssertXsltTests.cs
index 588a1517..eb1f3597 100644
--- a/src/Arcus.Testing.Tests.Unit/Assert_/AssertXsltTests.cs
+++ b/src/Arcus.Testing.Tests.Unit/Assert_/AssertXsltTests.cs
@@ -208,12 +208,6 @@ public void TransformXmlArg_WithoutTransformer_Fails()
Assert.ThrowsAny(() => AssertXslt.TransformToXml(xsltTransformer: null, inputXml: "", new XsltArgumentList()));
}
- [Fact]
- public void TransformXmlArg_WithoutInput_Fails()
- {
- Assert.ThrowsAny(() => AssertXslt.TransformToXml("", inputXml: null, new XsltArgumentList()));
- }
-
[Fact]
public void TransformXmlNodeArg_WithoutTransformer_Fails()
{
diff --git a/src/Arcus.Testing.Tests.Unit/Core/AsyncDisposableTests.cs b/src/Arcus.Testing.Tests.Unit/Core/AsyncDisposableTests.cs
new file mode 100644
index 00000000..f73121b9
--- /dev/null
+++ b/src/Arcus.Testing.Tests.Unit/Core/AsyncDisposableTests.cs
@@ -0,0 +1,26 @@
+using System;
+using Xunit;
+
+namespace Arcus.Testing.Tests.Unit.Core
+{
+ public class AsyncDisposableTests
+ {
+ [Fact]
+ public void Create_WithoutDisposable_Fails()
+ {
+ Assert.ThrowsAny(() => AsyncDisposable.Create(disposable: null));
+ }
+
+ [Fact]
+ public void Create_WithoutDispose_Fails()
+ {
+ Assert.ThrowsAny(() => AsyncDisposable.Create(dispose: null));
+ }
+
+ [Fact]
+ public void Create_WithoutDisposeAsync_Fails()
+ {
+ Assert.ThrowsAny(() => AsyncDisposable.Create(disposeAsync: null));
+ }
+ }
+}
From 90e2bd0dad1a2dabbd673aca7443dcfd187ec88b Mon Sep 17 00:00:00 2001
From: stijnmoreels <9039753+stijnmoreels@users.noreply.github.com>
Date: Thu, 1 Aug 2024 11:13:24 +0200
Subject: [PATCH 65/68] pr-fix: improve coverage
---
src/Arcus.Testing.Tests.Unit/Blanks.cs | 4 +++-
src/Arcus.Testing.Tests.Unit/Core/PollTests.cs | 9 +++++++++
.../Logging/XunitTestLoggerTests.cs | 9 ++++++++-
3 files changed, 20 insertions(+), 2 deletions(-)
diff --git a/src/Arcus.Testing.Tests.Unit/Blanks.cs b/src/Arcus.Testing.Tests.Unit/Blanks.cs
index 4e1d1720..cd34882c 100644
--- a/src/Arcus.Testing.Tests.Unit/Blanks.cs
+++ b/src/Arcus.Testing.Tests.Unit/Blanks.cs
@@ -1,4 +1,5 @@
-using System.Collections;
+using System;
+using System.Collections;
using System.Collections.Generic;
namespace Arcus.Testing.Tests.Unit
@@ -18,6 +19,7 @@ public IEnumerator