Skip to content

Commit 8eb6634

Browse files
authored
test: Add tests that verify the MdDocs NuGet packages contain the expected files
Pull-Request: ap0llo#232
1 parent 090fdf8 commit 8eb6634

8 files changed

+1555
-1
lines changed

MdDocs.sln

+7
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{DC2AECAE
5050
EndProject
5151
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Build", "build\Build.csproj", "{2166FFBB-4986-44ED-9B15-26A4DF8D22BC}"
5252
EndProject
53+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Grynwald.MdDocs.BuildVerification", "src\MdDocs.BuildVerification\Grynwald.MdDocs.BuildVerification.csproj", "{8192BF1D-F762-49FE-9838-7CF020C4F566}"
54+
EndProject
5355
Global
5456
GlobalSection(SolutionConfigurationPlatforms) = preSolution
5557
Debug|Any CPU = Debug|Any CPU
@@ -114,6 +116,10 @@ Global
114116
{36DE9F53-7D40-4E72-846D-54F3422143E0}.Release|Any CPU.Build.0 = Release|Any CPU
115117
{2166FFBB-4986-44ED-9B15-26A4DF8D22BC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
116118
{2166FFBB-4986-44ED-9B15-26A4DF8D22BC}.Release|Any CPU.ActiveCfg = Release|Any CPU
119+
{8192BF1D-F762-49FE-9838-7CF020C4F566}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
120+
{8192BF1D-F762-49FE-9838-7CF020C4F566}.Debug|Any CPU.Build.0 = Debug|Any CPU
121+
{8192BF1D-F762-49FE-9838-7CF020C4F566}.Release|Any CPU.ActiveCfg = Release|Any CPU
122+
{8192BF1D-F762-49FE-9838-7CF020C4F566}.Release|Any CPU.Build.0 = Release|Any CPU
117123
EndGlobalSection
118124
GlobalSection(SolutionProperties) = preSolution
119125
HideSolutionNode = FALSE
@@ -137,6 +143,7 @@ Global
137143
{15EDB45F-5F29-4DE0-BA1C-F05880219224} = {3560D538-F1D7-4AB1-9B82-D9A5D6B69D26}
138144
{36DE9F53-7D40-4E72-846D-54F3422143E0} = {3560D538-F1D7-4AB1-9B82-D9A5D6B69D26}
139145
{2166FFBB-4986-44ED-9B15-26A4DF8D22BC} = {DC2AECAE-7982-4845-830D-B340ADD7A220}
146+
{8192BF1D-F762-49FE-9838-7CF020C4F566} = {3560D538-F1D7-4AB1-9B82-D9A5D6B69D26}
140147
EndGlobalSection
141148
GlobalSection(ExtensibilityGlobals) = postSolution
142149
SolutionGuid = {6774E9D8-488A-4F3B-9F91-41065B9DE8BE}

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ I'm also using issues as a backlog of things that come into my mind or things I
7878
- [Newtonsoft.Json](https://www.newtonsoft.com/json)
7979
- [Cake](https://cakebuild.net/)
8080
- [Cake.BuildSystems.Module](https://github.com/cake-contrib/Cake.BuildSystems.Module)
81+
- [Verify](https://github.com/VerifyTests/Verify)
8182

8283
## Versioning and Branching
8384

build/Program.cs

+24-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using System.Collections.Generic;
22
using Cake.AzurePipelines.Module;
3+
using Cake.Common.Tools.DotNet.Test;
34
using Cake.Core;
45
using Cake.DotNetLocalTools.Module;
56
using Cake.Frosting;
@@ -10,7 +11,10 @@
1011
//.UseModule<AzurePipelinesModule>()
1112
.UseModule<LocalToolsModule>()
1213
.InstallToolsFromManifest(".config/dotnet-tools.json")
13-
.UseSharedBuild<BuildContext>()
14+
.UseSharedBuild<BuildContext>(
15+
// Load all tasks except the "Test" task (there is a customized version of the "Test" task defined below)
16+
taskFilter: task => task != typeof(Grynwald.SharedBuild.Tasks.TestTask)
17+
)
1418
.Run(args);
1519

1620

@@ -29,3 +33,22 @@ public class BuildContext : DefaultBuildContext
2933
public BuildContext(ICakeContext context) : base(context)
3034
{ }
3135
}
36+
37+
/// <summary>
38+
/// Customized "Test" task
39+
/// </summary>
40+
[TaskName(TaskNames.Test)]
41+
[IsDependentOn(typeof(Grynwald.SharedBuild.Tasks.PackTask))]
42+
public class TestTask : Grynwald.SharedBuild.Tasks.TestTask
43+
{
44+
protected override DotNetTestSettings GetDotNetTestSettings(IBuildContext context)
45+
{
46+
var testSettings = base.GetDotNetTestSettings(context);
47+
48+
// The test project "Grynwald.MdDocs.BuildVerification" requires access to the NuGet package output directory
49+
// which is passed in as environment variable
50+
testSettings.EnvironmentVariables["MDDOCS_TEST_PACKAGEOUTPUTPATH"] = context.Output.PackagesDirectory.FullPath;
51+
52+
return testSettings;
53+
}
54+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
3+
<PropertyGroup>
4+
<TargetFramework>net7.0</TargetFramework>
5+
<IsPackable>false</IsPackable>
6+
</PropertyGroup>
7+
8+
<ItemGroup>
9+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.3.2" />
10+
<PackageReference Include="xunit" Version="2.4.2" />
11+
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.5" PrivateAssets="all" />
12+
<PackageReference Include="coverlet.collector" Version="3.1.2" PrivateAssets="all" />
13+
<PackageReference Include="Verify.Xunit" Version="19.5.0" />
14+
<PackageReference Include="NuGet.Packaging" Version="6.4.0" />
15+
</ItemGroup>
16+
17+
</Project>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
{
2+
Id: Grynwald.MdDocs.MSBuild,
3+
IsDevelopmentDependency: true,
4+
PackageTypes: [],
5+
Dependencies: [],
6+
FrameworkReferences: [
7+
{
8+
TargetFramework: .NETFramework,Version=v4.7.2,
9+
Assemblies: [
10+
System.IO,
11+
System.Runtime,
12+
System.Security.Cryptography.Algorithms,
13+
System.Security.Cryptography.Encoding,
14+
System.Security.Cryptography.Primitives
15+
]
16+
}
17+
],
18+
Files: [
19+
build/net472/Grynwald.MdDocs.MSBuild.pdb,
20+
build/netstandard2.0/Grynwald.MdDocs.MSBuild.pdb,
21+
build/net472/Grynwald.MarkdownGenerator.dll,
22+
build/net472/Grynwald.MdDocs.ApiReference.dll,
23+
build/net472/Grynwald.MdDocs.CommandLineHelp.dll,
24+
build/net472/Grynwald.MdDocs.Common.dll,
25+
build/net472/Grynwald.Utilities.dll,
26+
build/net472/Microsoft.Bcl.AsyncInterfaces.dll,
27+
build/net472/Microsoft.Extensions.Configuration.Abstractions.dll,
28+
build/net472/Microsoft.Extensions.Configuration.Binder.dll,
29+
build/net472/Microsoft.Extensions.Configuration.dll,
30+
build/net472/Microsoft.Extensions.Configuration.FileExtensions.dll,
31+
build/net472/Microsoft.Extensions.Configuration.Json.dll,
32+
build/net472/Microsoft.Extensions.FileProviders.Abstractions.dll,
33+
build/net472/Microsoft.Extensions.FileProviders.Physical.dll,
34+
build/net472/Microsoft.Extensions.FileSystemGlobbing.dll,
35+
build/net472/Microsoft.Extensions.Logging.Abstractions.dll,
36+
build/net472/Microsoft.Extensions.Primitives.dll,
37+
build/net472/Mono.Cecil.dll,
38+
build/net472/Mono.Cecil.Mdb.dll,
39+
build/net472/Mono.Cecil.Pdb.dll,
40+
build/net472/Mono.Cecil.Rocks.dll,
41+
build/net472/System.Buffers.dll,
42+
build/net472/System.Memory.dll,
43+
build/net472/System.Numerics.Vectors.dll,
44+
build/net472/System.Runtime.CompilerServices.Unsafe.dll,
45+
build/net472/System.Text.Encodings.Web.dll,
46+
build/net472/System.Text.Json.dll,
47+
build/net472/System.Threading.Tasks.Extensions.dll,
48+
build/net472/System.ValueTuple.dll,
49+
build/net472/Grynwald.MdDocs.MSBuild.dll,
50+
build/netstandard2.0/Grynwald.MarkdownGenerator.dll,
51+
build/netstandard2.0/Grynwald.MdDocs.ApiReference.dll,
52+
build/netstandard2.0/Grynwald.MdDocs.CommandLineHelp.dll,
53+
build/netstandard2.0/Grynwald.MdDocs.Common.dll,
54+
build/netstandard2.0/Grynwald.Utilities.dll,
55+
build/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.dll,
56+
build/netstandard2.0/Microsoft.Extensions.Configuration.Abstractions.dll,
57+
build/netstandard2.0/Microsoft.Extensions.Configuration.Binder.dll,
58+
build/netstandard2.0/Microsoft.Extensions.Configuration.dll,
59+
build/netstandard2.0/Microsoft.Extensions.Configuration.FileExtensions.dll,
60+
build/netstandard2.0/Microsoft.Extensions.Configuration.Json.dll,
61+
build/netstandard2.0/Microsoft.Extensions.FileProviders.Abstractions.dll,
62+
build/netstandard2.0/Microsoft.Extensions.FileProviders.Physical.dll,
63+
build/netstandard2.0/Microsoft.Extensions.FileSystemGlobbing.dll,
64+
build/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.dll,
65+
build/netstandard2.0/Microsoft.Extensions.Primitives.dll,
66+
build/netstandard2.0/Mono.Cecil.dll,
67+
build/netstandard2.0/Mono.Cecil.Mdb.dll,
68+
build/netstandard2.0/Mono.Cecil.Pdb.dll,
69+
build/netstandard2.0/Mono.Cecil.Rocks.dll,
70+
build/netstandard2.0/System.Buffers.dll,
71+
build/netstandard2.0/System.Memory.dll,
72+
build/netstandard2.0/System.Numerics.Vectors.dll,
73+
build/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll,
74+
build/netstandard2.0/System.Text.Encodings.Web.dll,
75+
build/netstandard2.0/System.Text.Json.dll,
76+
build/netstandard2.0/System.Threading.Tasks.Extensions.dll,
77+
build/netstandard2.0/Grynwald.MdDocs.MSBuild.dll,
78+
build/Grynwald.MdDocs.MSBuild.props,
79+
build/Grynwald.MdDocs.MSBuild.targets
80+
]
81+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
{
2+
Id: Grynwald.MdDocs,
3+
IsDevelopmentDependency: false,
4+
PackageTypes: [
5+
DotnetTool
6+
],
7+
Dependencies: [],
8+
FrameworkReferences: [],
9+
Files: [
10+
tools/net6.0/any/DotnetToolSettings.xml,
11+
tools/net7.0/any/DotnetToolSettings.xml,
12+
tools/net6.0/any/mddocs.dll,
13+
tools/net6.0/any/mddocs.runtimeconfig.json,
14+
tools/net6.0/any/mddocs.pdb,
15+
tools/net6.0/any/CommandLine.dll,
16+
tools/net6.0/any/Grynwald.MarkdownGenerator.dll,
17+
tools/net6.0/any/Grynwald.Utilities.dll,
18+
tools/net6.0/any/Grynwald.Utilities.Logging.dll,
19+
tools/net6.0/any/Microsoft.Extensions.Configuration.dll,
20+
tools/net6.0/any/Microsoft.Extensions.Configuration.Abstractions.dll,
21+
tools/net6.0/any/Microsoft.Extensions.Configuration.Binder.dll,
22+
tools/net6.0/any/Microsoft.Extensions.Configuration.FileExtensions.dll,
23+
tools/net6.0/any/Microsoft.Extensions.Configuration.Json.dll,
24+
tools/net6.0/any/Microsoft.Extensions.FileProviders.Abstractions.dll,
25+
tools/net6.0/any/Microsoft.Extensions.FileProviders.Physical.dll,
26+
tools/net6.0/any/Microsoft.Extensions.FileSystemGlobbing.dll,
27+
tools/net6.0/any/Microsoft.Extensions.Logging.Abstractions.dll,
28+
tools/net6.0/any/Microsoft.Extensions.Primitives.dll,
29+
tools/net6.0/any/Mono.Cecil.Mdb.dll,
30+
tools/net6.0/any/Mono.Cecil.Pdb.dll,
31+
tools/net6.0/any/Mono.Cecil.Rocks.dll,
32+
tools/net6.0/any/Mono.Cecil.dll,
33+
tools/net6.0/any/Grynwald.MdDocs.ApiReference.dll,
34+
tools/net6.0/any/Grynwald.MdDocs.CommandLineHelp.dll,
35+
tools/net6.0/any/Grynwald.MdDocs.Common.dll,
36+
tools/net6.0/any/Grynwald.MdDocs.ApiReference.pdb,
37+
tools/net6.0/any/Grynwald.MdDocs.CommandLineHelp.pdb,
38+
tools/net6.0/any/Grynwald.MdDocs.Common.pdb,
39+
tools/net6.0/any/mddocs.deps.json,
40+
tools/net7.0/any/mddocs.dll,
41+
tools/net7.0/any/mddocs.runtimeconfig.json,
42+
tools/net7.0/any/mddocs.pdb,
43+
tools/net7.0/any/CommandLine.dll,
44+
tools/net7.0/any/Grynwald.MarkdownGenerator.dll,
45+
tools/net7.0/any/Grynwald.Utilities.dll,
46+
tools/net7.0/any/Grynwald.Utilities.Logging.dll,
47+
tools/net7.0/any/Microsoft.Extensions.Configuration.dll,
48+
tools/net7.0/any/Microsoft.Extensions.Configuration.Abstractions.dll,
49+
tools/net7.0/any/Microsoft.Extensions.Configuration.Binder.dll,
50+
tools/net7.0/any/Microsoft.Extensions.Configuration.FileExtensions.dll,
51+
tools/net7.0/any/Microsoft.Extensions.Configuration.Json.dll,
52+
tools/net7.0/any/Microsoft.Extensions.FileProviders.Abstractions.dll,
53+
tools/net7.0/any/Microsoft.Extensions.FileProviders.Physical.dll,
54+
tools/net7.0/any/Microsoft.Extensions.FileSystemGlobbing.dll,
55+
tools/net7.0/any/Microsoft.Extensions.Logging.Abstractions.dll,
56+
tools/net7.0/any/Microsoft.Extensions.Primitives.dll,
57+
tools/net7.0/any/Mono.Cecil.Mdb.dll,
58+
tools/net7.0/any/Mono.Cecil.Pdb.dll,
59+
tools/net7.0/any/Mono.Cecil.Rocks.dll,
60+
tools/net7.0/any/Mono.Cecil.dll,
61+
tools/net7.0/any/Grynwald.MdDocs.ApiReference.dll,
62+
tools/net7.0/any/Grynwald.MdDocs.CommandLineHelp.dll,
63+
tools/net7.0/any/Grynwald.MdDocs.Common.dll,
64+
tools/net7.0/any/Grynwald.MdDocs.ApiReference.pdb,
65+
tools/net7.0/any/Grynwald.MdDocs.CommandLineHelp.pdb,
66+
tools/net7.0/any/Grynwald.MdDocs.Common.pdb,
67+
tools/net7.0/any/mddocs.deps.json
68+
]
69+
}

0 commit comments

Comments
 (0)