Skip to content

Commit c15fbea

Browse files
authored
Merge branch 'master' into feature/exclude-fs-code-from-coverage
2 parents 60a8d69 + 895645a commit c15fbea

File tree

95 files changed

+630
-887
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

95 files changed

+630
-887
lines changed

.gitignore

+2-2
Original file line numberDiff line numberDiff line change
@@ -124,5 +124,5 @@ src/Docker/**/content
124124
config.wyam.dll
125125
config.wyam.hash
126126
config.wyam.packages.xml
127-
/test/core/build
128-
/test/full/build
127+
/tests/integration/core/build
128+
/tests/integration/full/build

build.config

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
#!/usr/bin/env bash
2-
DOTNET_VERSION=2.1.806,3.1.202
2+
DOTNET_VERSION=2.1.807,3.1.301

build/artifacts-test.cake

+5-5
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ Task("Artifacts-MsBuildCore-Test")
117117
continue;
118118
}
119119

120-
var cmd = $"-file {rootPrefix}/scripts/Test-MsBuildCore.ps1 -version {version} -repoPath {rootPrefix}/repo/test/core -nugetPath {rootPrefix}/nuget -targetframework {targetframework}";
120+
var cmd = $"-file {rootPrefix}/scripts/Test-MsBuildCore.ps1 -version {version} -repoPath {rootPrefix}/repo/tests/integration/core -nugetPath {rootPrefix}/nuget -targetframework {targetframework}";
121121

122122
DockerTestArtifact(dockerImage, parameters, cmd);
123123
}
@@ -141,7 +141,7 @@ Task("Artifacts-MsBuildFull-Test")
141141
dotnetCoreMsBuildSettings.WithProperty("TargetFramework", framework);
142142
dotnetCoreMsBuildSettings.WithProperty("GitVersionTaskVersion", version);
143143

144-
var projPath = MakeAbsolute(new DirectoryPath("./test/core"));
144+
var projPath = MakeAbsolute(new DirectoryPath("./tests/integration/core"));
145145

146146
DotNetCoreBuild(projPath.FullPath, new DotNetCoreBuildSettings
147147
{
@@ -151,7 +151,7 @@ Task("Artifacts-MsBuildFull-Test")
151151
ArgumentCustomization = args => args.Append($"--source {nugetSource}")
152152
});
153153

154-
var netcoreExe = new DirectoryPath("./test/core/build").Combine(framework).CombineWithFilePath("app.dll");
154+
var netcoreExe = new DirectoryPath("./tests/integration/core/build").Combine(framework).CombineWithFilePath("app.dll");
155155
ValidateOutput("dotnet", netcoreExe.FullPath, parameters.Version.GitVersion.FullSemVer);
156156
}
157157

@@ -166,9 +166,9 @@ Task("Artifacts-MsBuildFull-Test")
166166
msBuildSettings.WithProperty("GitVersionTaskVersion", version);
167167
msBuildSettings.WithProperty("RestoreSource", nugetSource);
168168

169-
MSBuild("./test/full", msBuildSettings);
169+
MSBuild("./tests/integration/full", msBuildSettings);
170170

171-
var fullExe = new DirectoryPath("./test/full/build").CombineWithFilePath("app.exe");
171+
var fullExe = new DirectoryPath("./tests/integration/full/build").CombineWithFilePath("app.exe");
172172
ValidateOutput(fullExe.FullPath, null, parameters.Version.GitVersion.FullSemVer);
173173
});
174174

build/utils/docker.cake

+1-1
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ DockerContainerRunSettings GetDockerRunSettings(BuildParameters parameters)
116116
Volume = new[]
117117
{
118118
$"{currentDir}:{root}/repo",
119-
$"{currentDir}/test-scripts:{root}/scripts",
119+
$"{currentDir}/tests/scripts:{root}/scripts",
120120
$"{currentDir}/artifacts/v{parameters.Version.SemVersion}/nuget:{root}/nuget",
121121
$"{currentDir}/artifacts/v{parameters.Version.SemVersion}/native/linux:{root}/native",
122122
}

src/Directory.Build.props

+23-1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
<PackageReleaseNotes>https://github.com/GitTools/GitVersion/releases</PackageReleaseNotes>
1616
<Company>$(Authors)</Company>
1717

18+
<LangVersion>8.0</LangVersion>
19+
1820
</PropertyGroup>
1921
<PropertyGroup>
2022
<PackageVersion_LibGit2Sharp>0.27.0-preview-0034</PackageVersion_LibGit2Sharp>
@@ -24,7 +26,7 @@
2426
<PackageVersion_YamlDotNet>8.1.2</PackageVersion_YamlDotNet>
2527
<PackageVersion_NewtonsoftJson>12.0.3</PackageVersion_NewtonsoftJson>
2628
<PackageVersion_MicrosoftExtensions>3.0.0</PackageVersion_MicrosoftExtensions>
27-
<PackageVersion_MsBuild>16.5.0</PackageVersion_MsBuild>
29+
<PackageVersion_MsBuild>16.6.0</PackageVersion_MsBuild>
2830

2931
<PackageVersion_MicrosoftTestSdk>16.6.1</PackageVersion_MicrosoftTestSdk>
3032
<PackageVersion_NSubstitute>4.2.1</PackageVersion_NSubstitute>
@@ -37,6 +39,26 @@
3739

3840
</PropertyGroup>
3941

42+
<ItemGroup Condition=" '$(IsTestProject)' == 'true' ">
43+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="$(PackageVersion_MicrosoftTestSdk)" />
44+
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="$(PackageVersion_MicrosoftExtensions)" />
45+
46+
<PackageReference Include="JetBrains.Annotations" Version="$(PackageVersion_JetBrainsAnnotations)" />
47+
<PackageReference Include="Newtonsoft.Json" Version="$(PackageVersion_NewtonsoftJson)" />
48+
<PackageReference Include="NSubstitute" Version="$(PackageVersion_NSubstitute)" />
49+
50+
<PackageReference Include="NUnit" Version="$(PackageVersion_NUnit)" />
51+
<PackageReference Include="NUnit3TestAdapter" Version="$(PackageVersion_NUnit3TestAdapter)" />
52+
<PackageReference Include="NunitXml.TestLogger" Version="$(PackageVersion_NunitXmlTestLogger)" />
53+
<PackageReference Include="Shouldly" Version="$(PackageVersion_Shouldly)" />
54+
<PackageReference Include="GitTools.Testing" Version="$(PackageVersion_GitToolsTesting)" />
55+
56+
<PackageReference Include="coverlet.msbuild" Version="$(PackageVersion_CoverletMsBuild)">
57+
<PrivateAssets>all</PrivateAssets>
58+
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
59+
</PackageReference>
60+
</ItemGroup>
61+
4062
<ItemGroup>
4163
<None Include="../../docs/input/docs/img/package_icon.png">
4264
<Pack>true</Pack>

src/GitVersion.sln

-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
2222
..\GitVersion.yml = ..\GitVersion.yml
2323
..\LICENSE = ..\LICENSE
2424
..\README.md = ..\README.md
25-
test.props = test.props
2625
EndProjectSection
2726
EndProject
2827
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "GitVersionCore", "GitVersionCore\GitVersionCore.csproj", "{F9741A0D-B9D7-4557-9A1C-A7252C1071F5}"

src/GitVersionCore.Tests/Core/GitVersionExecutorTests.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
using GitVersion.BuildAgents;
88
using GitVersion.Configuration;
99
using GitVersion.Logging;
10+
using GitVersion.Model.Configuration;
1011
using GitVersion.VersionCalculation.Cache;
1112
using GitVersionCore.Tests.Helpers;
1213
using LibGit2Sharp;
@@ -224,8 +225,7 @@ public void CacheFileExistsOnDiskWhenOverrideConfigIsSpecifiedVersionShouldBeDyn
224225

225226
var cacheDirectoryTimestamp = fileSystem.GetLastDirectoryWrite(cacheDirectory);
226227

227-
var config = new TestableConfig { TagPrefix = "prefix" };
228-
config.Reset();
228+
var config = new ConfigurationBuilder().Add(new Config { TagPrefix = "prefix" }).Build();
229229
gitVersionOptions = new GitVersionOptions { WorkingDirectory = fixture.RepositoryPath, ConfigInfo = { OverrideConfig = config } };
230230

231231
gitVersionCalculator = GetGitVersionCalculator(gitVersionOptions);

src/GitVersionCore.Tests/Core/RepositoryExtensionsTests.cs

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
using GitVersion.Logging;
1+
using System;
2+
using System.Collections.Generic;
3+
using GitVersion;
24
using GitVersion.Extensions;
5+
using GitVersion.Logging;
36
using GitVersionCore.Tests.Helpers;
47
using LibGit2Sharp;
5-
using NUnit.Framework;
68
using NSubstitute;
7-
using System;
8-
using System.Collections.Generic;
9-
using GitVersion;
9+
using NUnit.Framework;
1010

1111
namespace GitVersionCore.Tests
1212
{

src/GitVersionCore.Tests/Extensions/GitToolsTestingExtensions.cs

+3-4
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,7 @@ public static VersionVariables GetVersion(this RepositoryFixtureBase fixture, Co
2121
{
2222
if (configuration == null)
2323
{
24-
configuration = new TestableConfig();
25-
configuration.Reset();
24+
configuration = new ConfigurationBuilder().Build();
2625
}
2726

2827
repository ??= fixture.Repository;
@@ -67,8 +66,8 @@ public static VersionVariables GetVersion(this RepositoryFixtureBase fixture, Co
6766

6867
public static void AssertFullSemver(this RepositoryFixtureBase fixture, string fullSemver, Config configuration = null, IRepository repository = null, string commitId = null, bool onlyTrackedBranches = true, string targetBranch = null)
6968
{
70-
configuration ??= new TestableConfig();
71-
configuration.Reset();
69+
configuration ??= new Config();
70+
configuration = new ConfigurationBuilder().Add(configuration).Build();
7271
Console.WriteLine("---------");
7372

7473
try

src/GitVersionCore.Tests/GitVersionCore.Tests.csproj

+4-41
Original file line numberDiff line numberDiff line change
@@ -6,59 +6,22 @@
66
<DebugType>full</DebugType>
77
<Optimize>false</Optimize>
88
<DebugSymbols>true</DebugSymbols>
9-
<LangVersion>8.0</LangVersion>
9+
10+
<IsTestProject>true</IsTestProject>
1011
</PropertyGroup>
1112

12-
<Import Project="..\test.props" />
1313
<ItemGroup>
1414
<PackageReference Include="FluentDateTime" Version="2.0.0" />
1515
<PackageReference Include="LibGit2Sharp.NativeBinaries" Version="$(PackageVersion_LibGit2Sharp_NativeBinaries)" />
16-
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="$(PackageVersion_MicrosoftExtensions)" />
1716
<PackageReference Include="Microsoft.Extensions.Options" Version="$(PackageVersion_MicrosoftExtensions)" />
1817
<PackageReference Include="YamlDotNet" Version="$(PackageVersion_YamlDotNet)" />
1918
</ItemGroup>
2019
<ItemGroup>
2120
<ProjectReference Include="..\GitVersionCore\GitVersionCore.csproj" />
2221
</ItemGroup>
2322
<ItemGroup>
24-
<Content Include="Approved\**\*.approved.txt" />
25-
<Content Include="VersionCalculation\Approved\JsonVersionBuilderTests.Json.approved.txt" />
26-
<Content Include="VersionCalculation\Approved\VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForFeatureBranch.approved.txt" />
27-
<Content Include="VersionCalculation\Approved\VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForFeatureBranchWithCustomAssemblyInfoFormat.approved.txt" />
28-
<Content Include="VersionCalculation\Approved\VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForPreRelease.approved.txt" />
29-
<Content Include="VersionCalculation\Approved\VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForPreReleaseWithPadding.approved.txt" />
30-
<Content Include="VersionCalculation\Approved\VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForStable.approved.txt" />
31-
<Content Include="VersionCalculation\Approved\VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForPreRelease.approved.txt" />
32-
<Content Include="VersionCalculation\Approved\VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForStable.approved.txt" />
33-
<Content Include="VersionCalculation\Approved\VariableProviderTests.ProvidesVariablesInContinuousDeploymentModeForStableWhenCurrentCommitIsTagged.approved.txt" />
34-
<Content Include="VersionConverters\Approved\cs\AssemblyInfoFileUpdaterTests.Issue1183ShouldAddFSharpAssemblyInformationalVersionBesideOtherAttributes.approved.txt" />
35-
<Content Include="VersionConverters\Approved\cs\AssemblyInfoFileUpdaterTests.ShouldAddAssemblyInformationalVersionWhenUpdatingAssemblyVersionFile.approved.txt" />
36-
<Content Include="VersionConverters\Approved\cs\AssemblyInfoFileUpdaterTests.ShouldCreateAssemblyInfoFileAtPathWhenNotExistsAndEnsureAssemblyInfo.approved.txt" />
37-
<Content Include="VersionConverters\Approved\cs\AssemblyInfoFileUpdaterTests.ShouldCreateAssemblyInfoFilesAtPathWhenNotExistsAndEnsureAssemblyInfo.approved.txt" />
38-
<Content Include="VersionConverters\Approved\cs\AssemblyInfoFileUpdaterTests.ShouldCreateAssemblyInfoFileWhenNotExistsAndEnsureAssemblyInfo.approved.txt" />
39-
<Content Include="VersionConverters\Approved\cs\AssemblyInfoFileUpdaterTests.ShouldNotAddAssemblyInformationalVersionWhenVersionSchemeIsNone.approved.txt" />
40-
<Content Include="VersionConverters\Approved\cs\AssemblyInfoFileUpdaterTests.ShouldNotReplaceAssemblyVersionWhenVersionSchemeIsNone.approved.txt" />
41-
<Content Include="VersionConverters\Approved\cs\GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt" />
42-
<Content Include="VersionConverters\Approved\fs\AssemblyInfoFileUpdaterTests.Issue1183ShouldAddFSharpAssemblyInformationalVersionBesideOtherAttributes.approved.txt" />
43-
<Content Include="VersionConverters\Approved\fs\AssemblyInfoFileUpdaterTests.ShouldAddAssemblyInformationalVersionWhenUpdatingAssemblyVersionFile.approved.txt" />
44-
<Content Include="VersionConverters\Approved\fs\AssemblyInfoFileUpdaterTests.ShouldCreateAssemblyInfoFileAtPathWhenNotExistsAndEnsureAssemblyInfo.approved.txt" />
45-
<Content Include="VersionConverters\Approved\fs\AssemblyInfoFileUpdaterTests.ShouldCreateAssemblyInfoFilesAtPathWhenNotExistsAndEnsureAssemblyInfo.approved.txt" />
46-
<Content Include="VersionConverters\Approved\fs\AssemblyInfoFileUpdaterTests.ShouldCreateAssemblyInfoFileWhenNotExistsAndEnsureAssemblyInfo.approved.txt" />
47-
<Content Include="VersionConverters\Approved\fs\AssemblyInfoFileUpdaterTests.ShouldNotAddAssemblyInformationalVersionWhenVersionSchemeIsNone.approved.txt" />
48-
<Content Include="VersionConverters\Approved\fs\AssemblyInfoFileUpdaterTests.ShouldNotReplaceAssemblyVersionWhenVersionSchemeIsNone.approved.txt" />
49-
<Content Include="VersionConverters\Approved\fs\GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt" />
50-
<Content Include="VersionConverters\Approved\vb\AssemblyInfoFileUpdaterTests.Issue1183ShouldAddFSharpAssemblyInformationalVersionBesideOtherAttributes.approved.txt" />
51-
<Content Include="VersionConverters\Approved\vb\AssemblyInfoFileUpdaterTests.ShouldAddAssemblyInformationalVersionWhenUpdatingAssemblyVersionFile.approved.txt" />
52-
<Content Include="VersionConverters\Approved\vb\AssemblyInfoFileUpdaterTests.ShouldCreateAssemblyInfoFileAtPathWhenNotExistsAndEnsureAssemblyInfo.approved.txt" />
53-
<Content Include="VersionConverters\Approved\vb\AssemblyInfoFileUpdaterTests.ShouldCreateAssemblyInfoFilesAtPathWhenNotExistsAndEnsureAssemblyInfo.approved.txt" />
54-
<Content Include="VersionConverters\Approved\vb\AssemblyInfoFileUpdaterTests.ShouldCreateAssemblyInfoFileWhenNotExistsAndEnsureAssemblyInfo.approved.txt" />
55-
<Content Include="VersionConverters\Approved\vb\AssemblyInfoFileUpdaterTests.ShouldNotAddAssemblyInformationalVersionWhenVersionSchemeIsNone.approved.txt" />
56-
<Content Include="VersionConverters\Approved\vb\AssemblyInfoFileUpdaterTests.ShouldNotReplaceAssemblyVersionWhenVersionSchemeIsNone.approved.txt" />
57-
<Content Include="VersionConverters\Approved\vb\GitVersionInfoGeneratorTests.ShouldCreateFile.approved.txt" />
58-
<Content Include="VersionConverters\Approved\WixFileTests.UpdateWixVersionFile.approved.txt" />
59-
</ItemGroup>
60-
<ItemGroup>
61-
<Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
23+
<Content Include="VersionCalculation\Approved\**\*.approved.txt" />
24+
<Content Include="VersionConverters\Approved\**\*.approved.txt" />
6225
</ItemGroup>
6326

6427
</Project>

src/GitVersionCore.Tests/Helpers/GitVersionContextBuilder.cs

+3-2
Original file line numberDiff line numberDiff line change
@@ -76,9 +76,10 @@ private GitVersionContextBuilder AddBranch(string branchName)
7676
public void Build()
7777
{
7878
var repo = repository ?? CreateRepository();
79-
var config = configuration ?? new TestableConfig();
8079

81-
config.Reset();
80+
var config = new ConfigurationBuilder()
81+
.Add(configuration ?? new Config())
82+
.Build();
8283

8384
var options = Options.Create(new GitVersionOptions
8485
{

src/GitVersionCore.Tests/Helpers/TestBase.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ protected static IServiceProvider ConfigureServices(Action<IServiceCollection> o
2626

2727
protected static IServiceProvider BuildServiceProvider(string workingDirectory, IRepository repository, string branch, Config config = null)
2828
{
29-
config ??= new TestableConfig().ApplyDefaults();
29+
config ??= new ConfigurationBuilder().Build();
3030
var options = Options.Create(new GitVersionOptions
3131
{
3232
WorkingDirectory = workingDirectory,

src/GitVersionCore.Tests/Helpers/TestableConfig.cs

-24
This file was deleted.

src/GitVersionCore.Tests/IntegrationTests/DevelopScenarios.cs

+8-14
Original file line numberDiff line numberDiff line change
@@ -55,15 +55,16 @@ public void WhenDevelopBranchedFromTaggedCommitOnMasterVersionDoesNotChange()
5555
[Test]
5656
public void CanChangeDevelopTagViaConfig()
5757
{
58-
var config = new TestableConfig
58+
var config = new Config
5959
{
6060
Branches =
6161
{
6262
{
63-
"develop", new BranchConfig
63+
"develop",
64+
new BranchConfig
6465
{
6566
Tag = "alpha",
66-
SourceBranches = new List<string>()
67+
SourceBranches = new HashSet<string>()
6768
}
6869
}
6970
}
@@ -115,16 +116,9 @@ public void MergingReleaseBranchBackIntoDevelopWithMergingToMasterDoesBumpDevelo
115116
[Test]
116117
public void CanHandleContinuousDelivery()
117118
{
118-
var config = new TestableConfig
119+
var config = new Config
119120
{
120-
Branches =
121-
{
122-
{"develop", new BranchConfig
123-
{
124-
VersioningMode = VersioningMode.ContinuousDelivery
125-
}
126-
}
127-
}
121+
Branches = { { "develop", new BranchConfig { VersioningMode = VersioningMode.ContinuousDelivery } } }
128122
};
129123
using var fixture = new EmptyRepositoryFixture();
130124
fixture.Repository.MakeATaggedCommit("1.0.0");
@@ -205,7 +199,7 @@ public void TagOnHotfixShouldNotAffectDevelop()
205199
[Test]
206200
public void CommitsSinceVersionSourceShouldNotGoDownUponGitFlowReleaseFinish()
207201
{
208-
var config = new TestableConfig
202+
var config = new Config
209203
{
210204
VersioningMode = VersioningMode.ContinuousDeployment
211205
};
@@ -246,7 +240,7 @@ public void CommitsSinceVersionSourceShouldNotGoDownUponGitFlowReleaseFinish()
246240
[Test]
247241
public void CommitsSinceVersionSourceShouldNotGoDownUponMergingFeatureOnlyToDevelop()
248242
{
249-
var config = new TestableConfig
243+
var config = new Config
250244
{
251245
VersioningMode = VersioningMode.ContinuousDeployment
252246
};

0 commit comments

Comments
 (0)