Skip to content

Commit aa65c8e

Browse files
committed
Update to xUnit v3 on Microsoft Testing Platform v2
1 parent 1fffc2c commit aa65c8e

13 files changed

Lines changed: 89 additions & 64 deletions

File tree

.github/workflows/Steeltoe.All.yml

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,12 @@ permissions:
1818

1919
env:
2020
DOTNET_CLI_TELEMETRY_OPTOUT: 1
21+
TESTINGPLATFORM_TELEMETRY_OPTOUT: 1
2122
DOTNET_NOLOGO: true
2223
SOLUTION_FILE: 'src/Steeltoe.All.sln'
2324
COMMON_TEST_ARGS: >-
24-
--no-build --configuration Release --collect "XPlat Code Coverage" --logger trx --results-directory ${{ github.workspace }}/dumps
25-
--settings coverlet.runsettings --blame-crash --blame-hang-timeout 3m
25+
--no-build --configuration Release --coverage --report-trx --results-directory ${{ github.workspace }}/dumps
26+
--coverage-settings coverage.config --crashdump --hangdump --hangdump-timeout 3m
2627
2728
jobs:
2829
analyze:
@@ -36,9 +37,9 @@ jobs:
3637
- os: ubuntu-latest
3738
runDockerContainers: true
3839
- os: windows-latest
39-
skipFilter: Category!=Integration
40+
skipFilter: '--filter-not-trait "Category=Integration"'
4041
- os: macos-latest
41-
skipFilter: Category!=Integration&Category!=SkipOnMacOS
42+
skipFilter: '--filter-not-trait "Category=Integration" --filter-not-trait "Category=SkipOnMacOS"'
4243
runs-on: ${{ matrix.os }}
4344
continue-on-error: true
4445

@@ -92,26 +93,26 @@ jobs:
9293
- name: Set skip filters for tests
9394
shell: bash
9495
run: |
95-
echo SKIP_FILTER_NO_MEMORY_DUMPS="${{ matrix.skipFilter && format('{0}&Category!=MemoryDumps', matrix.skipFilter) || 'Category!=MemoryDumps' }}" >> $GITHUB_ENV
96-
echo SKIP_FILTER_WITH_MEMORY_DUMPS="${{ matrix.skipFilter && format('{0}&Category=MemoryDumps', matrix.skipFilter) || 'Category=MemoryDumps' }}" >> $GITHUB_ENV
96+
echo SKIP_FILTER_NO_MEMORY_DUMPS="${{ matrix.skipFilter && format('{0} --filter-not-trait Category=MemoryDumps', matrix.skipFilter) || '--filter-not-trait Category=MemoryDumps' }}" >> $GITHUB_ENV
97+
echo SKIP_FILTER_WITH_MEMORY_DUMPS="${{ matrix.skipFilter && format('{0} --filter-trait Category=MemoryDumps', matrix.skipFilter) || '--filter-trait Category=MemoryDumps' }}" >> $GITHUB_ENV
9798
9899
- name: Test (net10.0)
99-
run: dotnet test ${{ env.SOLUTION_FILE }} --framework net10.0 --filter "${{ env.SKIP_FILTER_NO_MEMORY_DUMPS }}" ${{ env.COMMON_TEST_ARGS }}
100+
run: dotnet test --solution ${{ env.SOLUTION_FILE }} --framework net10.0 ${{ env.SKIP_FILTER_NO_MEMORY_DUMPS }} ${{ env.COMMON_TEST_ARGS }}
100101

101102
- name: Test (net10.0) (memory dumps)
102-
run: dotnet test ${{ env.SOLUTION_FILE }} --framework net10.0 --filter "${{ env.SKIP_FILTER_WITH_MEMORY_DUMPS }}" ${{ env.COMMON_TEST_ARGS }}
103+
run: dotnet test --solution ${{ env.SOLUTION_FILE }} --framework net10.0 ${{ env.SKIP_FILTER_WITH_MEMORY_DUMPS }} ${{ env.COMMON_TEST_ARGS }}
103104

104105
- name: Test (net9.0)
105-
run: dotnet test ${{ env.SOLUTION_FILE }} --framework net9.0 --filter "${{ env.SKIP_FILTER_NO_MEMORY_DUMPS }}" ${{ env.COMMON_TEST_ARGS }}
106+
run: dotnet test --solution ${{ env.SOLUTION_FILE }} --framework net9.0 ${{ env.SKIP_FILTER_NO_MEMORY_DUMPS }} ${{ env.COMMON_TEST_ARGS }}
106107

107108
- name: Test (net9.0) (memory dumps)
108-
run: dotnet test ${{ env.SOLUTION_FILE }} --framework net9.0 --filter "${{ env.SKIP_FILTER_WITH_MEMORY_DUMPS }}" ${{ env.COMMON_TEST_ARGS }}
109+
run: dotnet test --solution ${{ env.SOLUTION_FILE }} --framework net9.0 ${{ env.SKIP_FILTER_WITH_MEMORY_DUMPS }} ${{ env.COMMON_TEST_ARGS }}
109110

110111
- name: Test (net8.0)
111-
run: dotnet test ${{ env.SOLUTION_FILE }} --framework net8.0 --filter "${{ env.SKIP_FILTER_NO_MEMORY_DUMPS }}" ${{ env.COMMON_TEST_ARGS }}
112+
run: dotnet test --solution ${{ env.SOLUTION_FILE }} --framework net8.0 ${{ env.SKIP_FILTER_NO_MEMORY_DUMPS }} ${{ env.COMMON_TEST_ARGS }}
112113

113114
- name: Test (net8.0) (memory dumps)
114-
run: dotnet test ${{ env.SOLUTION_FILE }} --framework net8.0 --filter "${{ env.SKIP_FILTER_WITH_MEMORY_DUMPS }}" ${{ env.COMMON_TEST_ARGS }}
115+
run: dotnet test --solution ${{ env.SOLUTION_FILE }} --framework net8.0 ${{ env.SKIP_FILTER_WITH_MEMORY_DUMPS }} ${{ env.COMMON_TEST_ARGS }}
115116

116117
- name: Upload crash/hang dumps (on failure)
117118
if: ${{ failure() }}

.github/workflows/component-management.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ jobs:
3131
with:
3232
component: Management
3333
OS: macos
34-
skipFilter: Category!=SkipOnMacOS
34+
skipFilter: '--filter-not-trait Category=SkipOnMacOS'
3535

3636
windows:
3737
uses: ./.github/workflows/component-shared-workflow.yml

.github/workflows/component-shared-workflow.yml

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -23,15 +23,16 @@ permissions:
2323

2424
env:
2525
DOTNET_CLI_TELEMETRY_OPTOUT: 1
26+
TESTINGPLATFORM_TELEMETRY_OPTOUT: 1
2627
DOTNET_NOLOGO: true
2728
SOLUTION_FILE: src/Steeltoe.${{ inputs.component }}.slnf
2829
COMMON_TEST_ARGS: >-
29-
--no-build --configuration Release --collect "XPlat Code Coverage" --logger trx --results-directory ${{ github.workspace }}/dumps
30-
--settings coverlet.runsettings --blame-crash --blame-hang-timeout 3m
30+
--no-build --configuration Release --coverage --report-trx --results-directory ${{ github.workspace }}/dumps
31+
--coverage-settings coverage.config --crashdump --hangdump --hangdump-timeout 3m
3132
SKIP_FILTER_NO_MEMORY_DUMPS: >-
32-
${{ inputs.skipFilter && format('--filter "{0}&Category!=MemoryDumps"', inputs.skipFilter) || '--filter "Category!=MemoryDumps"' }}
33+
${{ inputs.skipFilter && format('{0} --filter-not-trait "Category=MemoryDumps"', inputs.skipFilter) || '--filter-not-trait "Category=MemoryDumps"' }}
3334
SKIP_FILTER_WITH_MEMORY_DUMPS: >-
34-
${{ inputs.skipFilter && format('--filter "{0}&Category=MemoryDumps"', inputs.skipFilter) || '--filter "Category=MemoryDumps"' }}
35+
${{ inputs.skipFilter && format('{0} --filter-trait "Category=MemoryDumps"', inputs.skipFilter) || '--filter-trait "Category=MemoryDumps"' }}
3536
3637
jobs:
3738
build:
@@ -87,25 +88,25 @@ jobs:
8788
run: dotnet build ${{ env.SOLUTION_FILE }} --no-restore --configuration Release --verbosity minimal
8889

8990
- name: Test (net10.0)
90-
run: dotnet test ${{ env.SOLUTION_FILE }} --framework net10.0 ${{ env.SKIP_FILTER_NO_MEMORY_DUMPS }} ${{ env.COMMON_TEST_ARGS }}
91+
run: dotnet test --solution ${{ env.SOLUTION_FILE }} --framework net10.0 ${{ env.SKIP_FILTER_NO_MEMORY_DUMPS }} ${{ env.COMMON_TEST_ARGS }}
9192

9293
- name: Test (net10.0) (memory dumps)
9394
if: ${{ inputs.component == 'Management' }}
94-
run: dotnet test ${{ env.SOLUTION_FILE }} --framework net10.0 ${{ env.SKIP_FILTER_WITH_MEMORY_DUMPS }} ${{ env.COMMON_TEST_ARGS }}
95+
run: dotnet test --solution ${{ env.SOLUTION_FILE }} --framework net10.0 ${{ env.SKIP_FILTER_WITH_MEMORY_DUMPS }} ${{ env.COMMON_TEST_ARGS }}
9596

9697
- name: Test (net9.0)
97-
run: dotnet test ${{ env.SOLUTION_FILE }} --framework net9.0 ${{ env.SKIP_FILTER_NO_MEMORY_DUMPS }} ${{ env.COMMON_TEST_ARGS }}
98+
run: dotnet test --solution ${{ env.SOLUTION_FILE }} --framework net9.0 ${{ env.SKIP_FILTER_NO_MEMORY_DUMPS }} ${{ env.COMMON_TEST_ARGS }}
9899

99100
- name: Test (net9.0) (memory dumps)
100101
if: ${{ inputs.component == 'Management' }}
101-
run: dotnet test ${{ env.SOLUTION_FILE }} --framework net9.0 ${{ env.SKIP_FILTER_WITH_MEMORY_DUMPS }} ${{ env.COMMON_TEST_ARGS }}
102+
run: dotnet test --solution ${{ env.SOLUTION_FILE }} --framework net9.0 ${{ env.SKIP_FILTER_WITH_MEMORY_DUMPS }} ${{ env.COMMON_TEST_ARGS }}
102103

103104
- name: Test (net8.0)
104-
run: dotnet test ${{ env.SOLUTION_FILE }} --framework net8.0 ${{ env.SKIP_FILTER_NO_MEMORY_DUMPS }} ${{ env.COMMON_TEST_ARGS }}
105+
run: dotnet test --solution ${{ env.SOLUTION_FILE }} --framework net8.0 ${{ env.SKIP_FILTER_NO_MEMORY_DUMPS }} ${{ env.COMMON_TEST_ARGS }}
105106

106107
- name: Test (net8.0) (memory dumps)
107108
if: ${{ inputs.component == 'Management' }}
108-
run: dotnet test ${{ env.SOLUTION_FILE }} --framework net8.0 ${{ env.SKIP_FILTER_WITH_MEMORY_DUMPS }} ${{ env.COMMON_TEST_ARGS }}
109+
run: dotnet test --solution ${{ env.SOLUTION_FILE }} --framework net8.0 ${{ env.SKIP_FILTER_WITH_MEMORY_DUMPS }} ${{ env.COMMON_TEST_ARGS }}
109110

110111

111112
- name: Upload crash/hang dumps (on failure)

.github/workflows/sonarcube.yml

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,12 @@ permissions:
1919

2020
env:
2121
DOTNET_CLI_TELEMETRY_OPTOUT: 1
22+
TESTINGPLATFORM_TELEMETRY_OPTOUT: 1
2223
DOTNET_NOLOGO: true
2324
SOLUTION_FILE: 'src/Steeltoe.All.sln'
2425
SONAR_TEST_ARGS: >-
25-
--no-build --configuration Release --collect "XPlat Code Coverage" --logger trx --results-directory ${{ github.workspace }}
26-
--settings coverlet.runsettings -- DataCollectionRunSettings.DataCollectors.DataCollector.Configuration.UseSourceLink=false
26+
--no-build --configuration Release --coverage --report-trx --results-directory ${{ github.workspace }}
27+
--coverage-settings coverage.config
2728
2829
jobs:
2930
analyze:
@@ -80,22 +81,22 @@ jobs:
8081
run: dotnet build ${{ env.SOLUTION_FILE }} --no-restore --configuration Release --verbosity minimal
8182

8283
- name: Test (net10.0)
83-
run: dotnet test ${{ env.SOLUTION_FILE }} --filter "Category!=MemoryDumps" --framework net10.0 ${{ env.SONAR_TEST_ARGS }}
84+
run: dotnet test --solution ${{ env.SOLUTION_FILE }} --filter-not-trait "Category=MemoryDumps" --framework net10.0 ${{ env.SONAR_TEST_ARGS }}
8485

8586
- name: Test (net10.0) (memory dumps)
86-
run: dotnet test ${{ env.SOLUTION_FILE }} --filter "Category=MemoryDumps" --framework net10.0 ${{ env.SONAR_TEST_ARGS }}
87+
run: dotnet test --solution ${{ env.SOLUTION_FILE }} --filter-trait "Category=MemoryDumps" --framework net10.0 ${{ env.SONAR_TEST_ARGS }}
8788

8889
- name: Test (net9.0)
89-
run: dotnet test ${{ env.SOLUTION_FILE }} --filter "Category!=MemoryDumps" --framework net9.0 ${{ env.SONAR_TEST_ARGS }}
90+
run: dotnet test --solution ${{ env.SOLUTION_FILE }} --filter-not-trait "Category=MemoryDumps" --framework net9.0 ${{ env.SONAR_TEST_ARGS }}
9091

9192
- name: Test (net9.0) (memory dumps)
92-
run: dotnet test ${{ env.SOLUTION_FILE }} --filter "Category=MemoryDumps" --framework net9.0 ${{ env.SONAR_TEST_ARGS }}
93+
run: dotnet test --solution ${{ env.SOLUTION_FILE }} --filter-trait "Category=MemoryDumps" --framework net9.0 ${{ env.SONAR_TEST_ARGS }}
9394

9495
- name: Test (net8.0)
95-
run: dotnet test ${{ env.SOLUTION_FILE }} --filter "Category!=MemoryDumps" --framework net8.0 ${{ env.SONAR_TEST_ARGS }}
96+
run: dotnet test --solution ${{ env.SOLUTION_FILE }} --filter-not-trait "Category=MemoryDumps" --framework net8.0 ${{ env.SONAR_TEST_ARGS }}
9697

9798
- name: Test (net8.0) (memory dumps)
98-
run: dotnet test ${{ env.SOLUTION_FILE }} --filter "Category=MemoryDumps" --framework net8.0 ${{ env.SONAR_TEST_ARGS }}
99+
run: dotnet test --solution ${{ env.SOLUTION_FILE }} --filter-trait "Category=MemoryDumps" --framework net8.0 ${{ env.SONAR_TEST_ARGS }}
99100

100101
- name: End Sonar .NET scanner
101102
if: ${{ !cancelled() && steps.sonar_begin.outcome == 'success' }}

coverage.config

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<Configuration>
3+
<Format>coverage</Format>
4+
<CodeCoverage>
5+
<ModulePaths>
6+
<Exclude>
7+
<ModulePath>.*ConfigurationSchemaGenerator.*</ModulePath>
8+
</Exclude>
9+
</ModulePaths>
10+
<Attributes>
11+
<Exclude>
12+
<Attribute>^System\.ObsoleteAttribute$</Attribute>
13+
<Attribute>^System\.CodeDom\.Compiler\.GeneratedCodeAttribute$</Attribute>
14+
<Attribute>^System\.Runtime\.CompilerServices\.CompilerGeneratedAttribute$</Attribute>
15+
<Attribute>^System\.Diagnostics\.CodeAnalysis\.ExcludeFromCodeCoverageAttribute$</Attribute>
16+
</Exclude>
17+
</Attributes>
18+
<Sources>
19+
<Exclude>
20+
<Source>.*\\test\\.*</Source>
21+
</Exclude>
22+
</Sources>
23+
</CodeCoverage>
24+
</Configuration>

coverlet.runsettings

Lines changed: 0 additions & 16 deletions
This file was deleted.

global.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"test": {
3+
"runner": "Microsoft.Testing.Platform"
4+
}
5+
}

shared-test.props

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,24 +5,29 @@
55
</PropertyGroup>
66

77
<PropertyGroup>
8-
<!-- https://github.com/xunit/xunit/issues/3238#issuecomment-2770720936 -->
9-
<TestTfmsInParallel>false</TestTfmsInParallel>
10-
<DisableTestingPlatformServerCapability>true</DisableTestingPlatformServerCapability>
8+
<UseMicrosoftTestingPlatformRunner>true</UseMicrosoftTestingPlatformRunner>
9+
<TestTfmsInParallel>
10+
<!-- https://github.com/xunit/xunit/issues/3238#issuecomment-2770720936 -->
11+
false
12+
</TestTfmsInParallel>
1113
</PropertyGroup>
1214

1315
<ItemGroup>
1416
<ProjectReference Include="$(MSBuildThisFileDirectory)\src\Common\test\TestResources\Steeltoe.Common.TestResources.csproj" />
1517
</ItemGroup>
1618

1719
<ItemGroup>
18-
<PackageReference Include="coverlet.collector" Version="$(CoverletVersion)" PrivateAssets="All" />
1920
<PackageReference Include="FluentAssertions" Version="$(FluentAssertionsVersion)" />
2021
<PackageReference Include="Microsoft.AspNetCore.TestHost" Version="$(MatchTargetFrameworkVersion)" />
2122
<PackageReference Include="Microsoft.Extensions.TimeProvider.Testing" Version="$(FoundationalVersion)" />
22-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="$(TestSdkVersion)" />
23+
<PackageReference Include="Microsoft.Testing.Extensions.CodeCoverage" Version="$(MicrosoftTestingExtensionsCodeCoverageVersion)" />
24+
<PackageReference Include="Microsoft.Testing.Extensions.CrashDump" Version="$(MicrosoftTestingPlatformVersion)" />
25+
<PackageReference Include="Microsoft.Testing.Extensions.HangDump" Version="$(MicrosoftTestingPlatformVersion)" />
26+
<PackageReference Include="Microsoft.Testing.Extensions.TrxReport" Version="$(MicrosoftTestingPlatformVersion)" />
27+
<!-- <PackageReference Include="Microsoft.NET.Test.Sdk" Version="$(TestSdkVersion)" /> -->
2328
<PackageReference Include="Moq" Version="$(MoqVersion)" />
24-
<PackageReference Include="xunit.v3" Version="$(XunitVersion)" />
25-
<PackageReference Include="xunit.runner.visualstudio" Version="$(XunitVisualStudioVersion)" />
29+
<PackageReference Include="xunit.v3.mtp-v2" Version="$(XunitVersion)" />
30+
<!-- <PackageReference Include="xunit.runner.visualstudio" Version="$(XunitVisualStudioVersion)" /> -->
2631
</ItemGroup>
2732

2833
<ItemGroup>

src/Connectors/test/Connectors.Test/Steeltoe.Connectors.Test.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
<PackageReference Include="MongoDB.Driver" Version="$(MongoDbDriverVersion)" />
1515
<PackageReference Include="MySqlConnector" Version="$(MySqlConnectorVersion)" />
1616
<PackageReference Include="MySql.Data" Version="$(MySqlDataVersion)" />
17+
<PackageReference Include="Newtonsoft.Json" Version="$(NewtonsoftJsonVersion)" />
1718
<PackageReference Include="Npgsql" Version="$(EntityFrameworkCoreTestVersion)" />
1819
<PackageReference Include="RabbitMQ.Client" Version="$(RabbitClientTestVersion)" />
1920
</ItemGroup>

src/Management/src/Endpoint/Actuators/Health/Contributors/FileSystem/NetworkShareWrapper.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
// The .NET Foundation licenses this file to you under the Apache 2.0 License.
33
// See the LICENSE file in the project root for more information.
44

5-
using System.Diagnostics.CodeAnalysis;
65
using System.Runtime.InteropServices;
76

87
namespace Steeltoe.Management.Endpoint.Actuators.Health.Contributors.FileSystem;
@@ -27,7 +26,6 @@ private NetworkShareWrapper(ulong freeBytesAvailable, ulong totalNumberOfBytes)
2726
: null;
2827
}
2928

30-
[ExcludeFromCodeCoverage(Justification = "Workaround for https://github.com/coverlet-coverage/coverlet/issues/1762")]
3129
private static partial class NativeMethods
3230
{
3331
[LibraryImport("kernel32.dll", EntryPoint = "GetDiskFreeSpaceExW", StringMarshalling = StringMarshalling.Utf16, SetLastError = true)]

0 commit comments

Comments
 (0)