Skip to content

Commit 3ec85e7

Browse files
authored
fix nuget package (vstest dependencies) (#1543)
* fix nuget package (vstest dependencies) * remove unnecessary version strings * create binlog for test * update build pipeline steps * fix typo * Update publish-coverage-results.yml remove comment * fix classfilter * define more versions for packages with dependencies * run specific test projects
1 parent cceb71d commit 3ec85e7

25 files changed

+126
-122
lines changed

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ bld/
2424
[Bb]in/
2525
[Oo]bj/
2626
[Ll]og/
27-
msbuild.binlog
27+
*.binlog
2828

2929
# Visual Studio 2015 cache/options directory
3030
.vs/
@@ -306,3 +306,4 @@ test/coverlet.integration.determisticbuild/*.txt
306306
test/coverlet.integration.determisticbuild/runsettings
307307

308308
coverage.cobertura.xml
309+
coverage.opencover.xml

Directory.Build.props

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,4 +35,18 @@
3535
<VSTestLogger>@(VSTestLogger)</VSTestLogger>
3636
</PropertyGroup>
3737

38+
<PropertyGroup>
39+
<!--
40+
Do not change versions since we need to support VSTest DataCollectors. We need to load assembly version 1.6.0 to properly work
41+
We can check minimum supported package version here https://github.com/Microsoft/vstest/blob/master/src/Microsoft.TestPlatform.ObjectModel/Microsoft.TestPlatform.ObjectModel.csproj#L34
42+
-->
43+
<!-- VSTest dependency versions -->
44+
<!-- https://github.com/microsoft/vstest/blob/fde8bf79d3f0f80e3548f873a56ffb4100c0ae49/eng/Versions.props#L22C1-L54C2 -->
45+
<SystemReflectionMetadataVersion>1.6.0</SystemReflectionMetadataVersion>
46+
<SystemCollectionsImmutableVersion>1.5.0</SystemCollectionsImmutableVersion>
47+
<MicrosoftBuildUtilitiesCorePackageVersion>15.9.20</MicrosoftBuildUtilitiesCorePackageVersion>
48+
<MicrosoftExtensionsDependencyModelPackageVersion>3.0.0</MicrosoftExtensionsDependencyModelPackageVersion>
49+
<MicrosoftExtensionsFileSystemGlobbingVersion>2.0.0</MicrosoftExtensionsFileSystemGlobbingVersion>
50+
</PropertyGroup>
51+
3852
</Project>

Directory.Packages.props

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,11 @@
3131
vstest 17.8 version
3232
NuGetFrameworksVersion is defined here https://github.com/microsoft/vstest/blob/9a0c41811637edf4afe0e265e08fdd1cb18109ed/eng/Versions.props#L94C1-L94C1
3333
-->
34-
<PackageVersion Include="NuGet.Frameworks" Version="5.11.5" />
34+
<PackageVersion Include="NuGet.Frameworks" Version="6.5.0" />
35+
<PackageVersion Include="NuGet.Packaging" Version="6.5.0" />
3536
<PackageVersion Include="Mono.Cecil" Version="0.11.5" />
3637
<PackageVersion Include="Moq" Version="4.18.4" />
3738
<PackageVersion Include="Newtonsoft.Json" Version="13.0.1" />
38-
<PackageVersion Include="NuGet.Packaging" Version="6.6.1" />
3939
<PackageVersion Include="ReportGenerator.Core" Version="5.1.23" />
4040
<!--For test issue 809 https://github.com/coverlet-coverage/coverlet/issues/809-->
4141
<PackageVersion Include="LinqKit.Microsoft.EntityFrameworkCore" Version="7.1.4" />
@@ -55,10 +55,10 @@
5555
System.NotSupportedException : Application is running as testhost, unable to determine parent 'dotnet' process.
5656
-->
5757
<PackageVersion Include="Tmds.ExecFunction" Version="0.6.0" />
58-
<PackageVersion Include="xunit" Version="2.5.0" />
58+
<PackageVersion Include="xunit" Version="2.5.3" />
5959
<PackageVersion Include="xunit.assemblyfixture" Version="2.2.0" />
60-
<PackageVersion Include="xunit.assert" Version="2.5.0" />
61-
<PackageVersion Include="xunit.runner.visualstudio" Version="2.5.0"/>
60+
<PackageVersion Include="xunit.assert" Version="2.5.3" />
61+
<PackageVersion Include="xunit.runner.visualstudio" Version="2.5.3"/>
6262
<PackageVersion Include="envdte" Version="17.7.37355" />
6363
</ItemGroup>
6464
</Project>

eng/build.yml

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ steps:
1212
- script: dotnet restore
1313
displayName: Restore packages
1414

15-
- script: dotnet build -c $(BuildConfiguration) --no-restore
15+
- script: dotnet build -c $(BuildConfiguration) --no-restore -bl:build.binlog
1616
displayName: Build
1717

1818
- script: dotnet pack -c $(BuildConfiguration) --no-restore
@@ -22,7 +22,12 @@ steps:
2222
displayName: Run tests with coverage
2323
inputs:
2424
command: test
25-
arguments: -c $(BuildConfiguration) --no-build /p:CollectCoverage=true /p:CoverletOutputFormat=opencover /p:Include="[coverlet.collector]*%2c[coverlet.core]*%2c[coverlet.msbuild.tasks]*" /p:Exclude="[coverlet.core.tests.samples.netstandard]*%2c[coverlet.tests.xunit.extensions]*"
25+
projects: |
26+
**/coverlet.collector.tests.csproj
27+
**/coverlet.core.tests.csproj
28+
**/coverlet.integration.tests.csproj
29+
**/coverlet.msbuild.tasks.tests.csproj
30+
arguments: -c $(BuildConfiguration) --no-build -bl:test.binlog /p:CollectCoverage=true /p:CoverletOutputFormat=opencover /p:Exclude="[coverlet.core.tests.samples.netstandard]*%2c[coverlet.tests.xunit.extensions]*%2c[coverlet.tests.projectsample]*" --diag:"$(Build.SourcesDirectory)\artifacts\log\$(Configuration)\coverlet.test.diag.log;tracelevel=verbose"
2631
testRunTitle: $(Agent.JobName)
2732

2833
- template: publish-coverlet-result-files.yml
@@ -31,5 +36,5 @@ steps:
3136
parameters:
3237
reports: $(Build.SourcesDirectory)/**/coverage.opencover.xml
3338
condition: and(succeeded(), eq(variables['BuildConfiguration'], 'Debug'))
34-
assemblyfilters: '-xunit'
35-
39+
assemblyfilters: '-xunit;-coverlet.testsubject;-Coverlet.Tests.ProjectSample.*'
40+
classfilters: '-[coverlet.core.tests.samples.netstandard]*;-[coverlet.tests.xunit.extensions]*'

eng/publish-coverage-results.yml

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -16,19 +16,9 @@ steps:
1616
targetType: inline
1717
pwsh: true
1818
script: |
19-
dotnet tool restore
19+
dotnet tool restore --add-source https://api.nuget.org/v3/index.json
2020
dotnet reportgenerator -reports:"${{parameters.reports}}" -targetdir:"$(Build.SourcesDirectory)/artifacts/CoverageReport" -reporttypes:"Html;HtmlInline_AzurePipelines_Dark;Cobertura" -assemblyfilters:"${{parameters.assemblyfilters}}" -classfilters:"${{parameters.classfilters}}" -verbosity:Verbose
2121
22-
# - task: reportgenerator@5
23-
# displayName: ReportGenerator
24-
# condition: ${{parameters.condition}}
25-
# inputs:
26-
# reports: ${{parameters.reports}}
27-
# targetdir: $(Build.SourcesDirectory)/artifacts/CoverageReport
28-
# reporttypes: Html;HtmlInline_AzurePipelines_Dark;Cobertura
29-
# verbosity: 'Verbose'
30-
# assemblyfilters: ${{parameters.assemblyfilters}}
31-
3222
- publish: '$(Build.SourcesDirectory)/artifacts/CoverageReport'
3323
displayName: 'Publish CoverageReport Artifact'
3424
artifact: CoverageResults_$(Agent.Os)_$(BuildConfiguration)

eng/publish-coverlet-result-files.yml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ steps:
88
Contents: |
99
**/*.trx
1010
**/*.html
11-
**/*.binlog
1211
**/coverage.opencover.xml
1312
**/coverage.cobertura.xml
1413
**/coverage.json
@@ -25,6 +24,14 @@ steps:
2524
Contents: '**/*.trx'
2625
TargetFolder: '$(Build.SourcesDirectory)/artifacts/TestLogs'
2726

27+
- task: CopyFiles@2
28+
displayName: Copy binlog files
29+
condition: always()
30+
inputs:
31+
SourceFolder: '$(Build.SourcesDirectory)'
32+
Contents: '**/*.binlog'
33+
TargetFolder: '$(Build.SourcesDirectory)/artifacts/TestLogs/BuildLogs'
34+
2835
- task: PublishPipelineArtifact@1
2936
displayName: Publish Coverlet logs
3037
continueOnError: true

src/coverlet.collector/coverlet.collector.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
<TargetsForTfmSpecificContentInPackage>$(TargetsForTfmSpecificContentInPackage);PackBuildOutputs</TargetsForTfmSpecificContentInPackage>
1616
<!-- Open issue https://github.com/NuGet/Home/issues/8941 -->
1717
<NoWarn>$(NoWarn);NU5127</NoWarn>
18+
<CentralPackageTransitivePinningEnabled>false</CentralPackageTransitivePinningEnabled>
1819
</PropertyGroup>
1920

2021
<!-- Nuget package properties https://docs.microsoft.com/en-us/nuget/reference/msbuild-targets -->

src/coverlet.core/coverlet.core.csproj

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,13 @@
77
</PropertyGroup>
88

99
<ItemGroup>
10-
<PackageReference Include="Microsoft.Extensions.DependencyModel" />
11-
<PackageReference Include="Microsoft.Extensions.FileSystemGlobbing" />
12-
<PackageReference Include="Microsoft.Extensions.DependencyInjection" />
10+
<PackageReference Include="Microsoft.Extensions.DependencyModel" VersionOverride="$(MicrosoftExtensionsDependencyModelPackageVersion)"/>
11+
<PackageReference Include="Microsoft.Extensions.FileSystemGlobbing" VersionOverride="$(MicrosoftExtensionsFileSystemGlobbingVersion)" />
12+
<PackageReference Include="Microsoft.Extensions.DependencyInjection" VersionOverride="6.0.1"/>
1313
<PackageReference Include="Mono.Cecil" />
14-
<PackageReference Include="System.Collections.Immutable" />
15-
<PackageReference Include="System.Reflection.Metadata" />
16-
<PackageReference Include="System.Text.Json" />
14+
<PackageReference Include="System.Reflection.Metadata" VersionOverride="$(SystemReflectionMetadataVersion)" />
15+
<PackageReference Include="System.Collections.Immutable" VersionOverride="$(SystemCollectionsImmutableVersion)"/>
16+
<PackageReference Include="System.Text.Json" VersionOverride="6.0.8"/>
1717
</ItemGroup>
1818

1919
</Project>

src/coverlet.msbuild.tasks/coverlet.msbuild.tasks.csproj

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
If you are packing with NuGet's MSBuild Pack target, you can set <SuppressDependenciesWhenPacking>true</SuppressDependenciesWhenPacking> in any PropertyGroup in your project file.
1616
-->
1717
<SuppressDependenciesWhenPacking>true</SuppressDependenciesWhenPacking>
18+
<CentralPackageTransitivePinningEnabled>false</CentralPackageTransitivePinningEnabled>
1819
</PropertyGroup>
1920

2021
<!-- Nuget package properties https://docs.microsoft.com/en-us/nuget/reference/msbuild-targets -->
@@ -36,7 +37,7 @@
3637
</PropertyGroup>
3738

3839
<ItemGroup>
39-
<PackageReference Include="Microsoft.Build.Utilities.Core" />
40+
<PackageReference Include="Microsoft.Build.Utilities.Core" VersionOverride="$(MicrosoftBuildUtilitiesCorePackageVersion)"/>
4041
</ItemGroup>
4142

4243
<ItemGroup>

test/coverlet.core.tests/Coverage/CoverageSummaryTests.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ private void SetupDataMultipleModule()
9494
var methods = new Methods();
9595
string[] methodString = {
9696
"System.Void Coverlet.Core.Tests.CoverageSummaryTests::TestCalculateSummary()", // covered
97-
"System.Void Coverlet.Core.Tests.CoverageSummaryTests::TestAditionalCalculateSummary()" // not covered
97+
"System.Void Coverlet.Core.Tests.CoverageSummaryTests::TestAdditionalCalculateSummary()" // not covered
9898
};
9999
methods.Add(methodString[0], new Method());
100100
methods[methodString[0]].Lines = lines;
@@ -119,7 +119,7 @@ private void SetupDataMultipleModule()
119119
_averageCalculationMultiModule = new Modules
120120
{
121121
{ "module", _averageCalculationSingleModule["module"] },
122-
{ "aditionalModule", documents }
122+
{ "additionalModule", documents }
123123
};
124124
}
125125

@@ -159,7 +159,7 @@ public void TestCalculateLineCoverage_MultiModule()
159159
{
160160
var summary = new CoverageSummary();
161161
Documents documentsFirstModule = _averageCalculationMultiModule["module"];
162-
Documents documentsSecondModule = _averageCalculationMultiModule["aditionalModule"];
162+
Documents documentsSecondModule = _averageCalculationMultiModule["additionalModule"];
163163

164164
Assert.Equal(37.5, summary.CalculateLineCoverage(_averageCalculationMultiModule).AverageModulePercent);
165165
Assert.Equal(50, summary.CalculateLineCoverage(documentsFirstModule.First().Value).Percent);
@@ -191,7 +191,7 @@ public void TestCalculateBranchCoverage_MultiModule()
191191
{
192192
var summary = new CoverageSummary();
193193
Documents documentsFirstModule = _averageCalculationMultiModule["module"];
194-
Documents documentsSecondModule = _averageCalculationMultiModule["aditionalModule"];
194+
Documents documentsSecondModule = _averageCalculationMultiModule["additionalModule"];
195195

196196
Assert.Equal(83.33, summary.CalculateBranchCoverage(_averageCalculationMultiModule).AverageModulePercent);
197197
Assert.Equal(100, summary.CalculateBranchCoverage(documentsFirstModule.First().Value).Percent);
@@ -220,7 +220,7 @@ public void TestCalculateMethodCoverage_MultiModule()
220220
{
221221
var summary = new CoverageSummary();
222222
Documents documentsFirstModule = _averageCalculationMultiModule["module"];
223-
Documents documentsSecondModule = _averageCalculationMultiModule["aditionalModule"];
223+
Documents documentsSecondModule = _averageCalculationMultiModule["additionalModule"];
224224

225225
Assert.Equal(75, summary.CalculateMethodCoverage(_averageCalculationMultiModule).AverageModulePercent);
226226
Assert.Equal(100, summary.CalculateMethodCoverage(documentsFirstModule.First().Value).Percent);

0 commit comments

Comments
 (0)