Skip to content

Commit 0e377b9

Browse files
Add xUnit V3 versions of TemplateVerifier, TemplateApiVerifier, and their tests
Create XunitV3 duplicates of TemplateVerifier, TemplateApiVerifier, and their UnitTests and IntegrationTests projects. Use shared .props files to minimize duplication between V2 and V3 project definitions. - Extract common properties, package refs, and project refs into Shared.props files for all 4 project pairs - V3 projects link source from V2 via Compile Include and define XUNIT_V3 constant - V3 TemplateVerifier uses Verify.XunitV3 + xunit.v3 packages - V3 TemplateApiVerifier swaps project refs to V3 versions shared CommandUtils files and test source files - V3 tools projects share PublicAPI.*.txt from V2 via AdditionalFiles Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent 5c69fa7 commit 0e377b9

22 files changed

Lines changed: 274 additions & 57 deletions

File tree

Microsoft.TemplateEngine.sln

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,10 +70,16 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tools", "tools", "{B794BF86
7070
EndProject
7171
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.TemplateEngine.Authoring.TemplateVerifier", "tools\Microsoft.TemplateEngine.Authoring.TemplateVerifier\Microsoft.TemplateEngine.Authoring.TemplateVerifier.csproj", "{12764D81-61A7-437A-90B6-9F245E43F457}"
7272
EndProject
73+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.TemplateEngine.Authoring.TemplateVerifier.XunitV3", "tools\Microsoft.TemplateEngine.Authoring.TemplateVerifier.XunitV3\Microsoft.TemplateEngine.Authoring.TemplateVerifier.XunitV3.csproj", "{CC3780CC-83CF-415C-A759-E5D0D4A64768}"
74+
EndProject
7375
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.TemplateEngine.Authoring.TemplateVerifier.IntegrationTests", "test\Microsoft.TemplateEngine.Authoring.TemplateVerifier.IntegrationTests\Microsoft.TemplateEngine.Authoring.TemplateVerifier.IntegrationTests.csproj", "{B1DDA327-F55E-466A-AF3E-7F039B9B51A9}"
7476
EndProject
77+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.TemplateEngine.Authoring.TemplateVerifier.IntegrationTests.XunitV3", "test\Microsoft.TemplateEngine.Authoring.TemplateVerifier.IntegrationTests.XunitV3\Microsoft.TemplateEngine.Authoring.TemplateVerifier.IntegrationTests.XunitV3.csproj", "{3C9F1344-E773-42FF-B98D-BD7277608903}"
78+
EndProject
7579
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.TemplateEngine.Authoring.TemplateVerifier.UnitTests", "test\Microsoft.TemplateEngine.Authoring.TemplateVerifier.UnitTests\Microsoft.TemplateEngine.Authoring.TemplateVerifier.UnitTests.csproj", "{D478568D-CA20-4331-9019-F585B564425E}"
7680
EndProject
81+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.TemplateEngine.Authoring.TemplateVerifier.UnitTests.XunitV3", "test\Microsoft.TemplateEngine.Authoring.TemplateVerifier.UnitTests.XunitV3\Microsoft.TemplateEngine.Authoring.TemplateVerifier.UnitTests.XunitV3.csproj", "{33D7A35E-A457-42FB-B849-3E752A372D23}"
82+
EndProject
7783
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.TemplateEngine.Authoring.CLI.UnitTests", "test\Microsoft.TemplateEngine.Authoring.CLI.UnitTests\Microsoft.TemplateEngine.Authoring.CLI.UnitTests.csproj", "{E8B9226E-879F-495A-BDAD-2607844D048C}"
7884
EndProject
7985
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "eng", "eng", "{D190251C-5649-4DD6-A158-16D119116352}"
@@ -102,6 +108,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Microsoft.TemplateEngine.Co
102108
EndProject
103109
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.TemplateEngine.Authoring.TemplateApiVerifier", "tools\Microsoft.TemplateEngine.Authoring.TemplateApiVerifier\Microsoft.TemplateEngine.Authoring.TemplateApiVerifier.csproj", "{449B9DDA-F18C-411E-9A74-3930652BB78A}"
104110
EndProject
111+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.TemplateEngine.Authoring.TemplateApiVerifier.XunitV3", "tools\Microsoft.TemplateEngine.Authoring.TemplateApiVerifier.XunitV3\Microsoft.TemplateEngine.Authoring.TemplateApiVerifier.XunitV3.csproj", "{3F3F695B-537E-44DD-93FE-A1D1B88F4589}"
112+
EndProject
105113
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "template-samples", "template-samples", "{3A2D12C2-0455-4471-9EBB-91749BA3A60F}"
106114
EndProject
107115
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.TemplateEngine.Samples", "dotnet-template-samples\Microsoft.TemplateEngine.Samples.csproj", "{DFB06A25-719F-4C8B-B84D-55D2D601BEF6}"
@@ -546,6 +554,54 @@ Global
546554
{F7C1932C-49E3-4869-A123-8184534AD1E2}.Release|x64.Build.0 = Release|Any CPU
547555
{F7C1932C-49E3-4869-A123-8184534AD1E2}.Release|x86.ActiveCfg = Release|Any CPU
548556
{F7C1932C-49E3-4869-A123-8184534AD1E2}.Release|x86.Build.0 = Release|Any CPU
557+
{CC3780CC-83CF-415C-A759-E5D0D4A64768}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
558+
{CC3780CC-83CF-415C-A759-E5D0D4A64768}.Debug|Any CPU.Build.0 = Debug|Any CPU
559+
{CC3780CC-83CF-415C-A759-E5D0D4A64768}.Debug|x64.ActiveCfg = Debug|Any CPU
560+
{CC3780CC-83CF-415C-A759-E5D0D4A64768}.Debug|x64.Build.0 = Debug|Any CPU
561+
{CC3780CC-83CF-415C-A759-E5D0D4A64768}.Debug|x86.ActiveCfg = Debug|Any CPU
562+
{CC3780CC-83CF-415C-A759-E5D0D4A64768}.Debug|x86.Build.0 = Debug|Any CPU
563+
{CC3780CC-83CF-415C-A759-E5D0D4A64768}.Release|Any CPU.ActiveCfg = Release|Any CPU
564+
{CC3780CC-83CF-415C-A759-E5D0D4A64768}.Release|Any CPU.Build.0 = Release|Any CPU
565+
{CC3780CC-83CF-415C-A759-E5D0D4A64768}.Release|x64.ActiveCfg = Release|Any CPU
566+
{CC3780CC-83CF-415C-A759-E5D0D4A64768}.Release|x64.Build.0 = Release|Any CPU
567+
{CC3780CC-83CF-415C-A759-E5D0D4A64768}.Release|x86.ActiveCfg = Release|Any CPU
568+
{CC3780CC-83CF-415C-A759-E5D0D4A64768}.Release|x86.Build.0 = Release|Any CPU
569+
{3F3F695B-537E-44DD-93FE-A1D1B88F4589}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
570+
{3F3F695B-537E-44DD-93FE-A1D1B88F4589}.Debug|Any CPU.Build.0 = Debug|Any CPU
571+
{3F3F695B-537E-44DD-93FE-A1D1B88F4589}.Debug|x64.ActiveCfg = Debug|Any CPU
572+
{3F3F695B-537E-44DD-93FE-A1D1B88F4589}.Debug|x64.Build.0 = Debug|Any CPU
573+
{3F3F695B-537E-44DD-93FE-A1D1B88F4589}.Debug|x86.ActiveCfg = Debug|Any CPU
574+
{3F3F695B-537E-44DD-93FE-A1D1B88F4589}.Debug|x86.Build.0 = Debug|Any CPU
575+
{3F3F695B-537E-44DD-93FE-A1D1B88F4589}.Release|Any CPU.ActiveCfg = Release|Any CPU
576+
{3F3F695B-537E-44DD-93FE-A1D1B88F4589}.Release|Any CPU.Build.0 = Release|Any CPU
577+
{3F3F695B-537E-44DD-93FE-A1D1B88F4589}.Release|x64.ActiveCfg = Release|Any CPU
578+
{3F3F695B-537E-44DD-93FE-A1D1B88F4589}.Release|x64.Build.0 = Release|Any CPU
579+
{3F3F695B-537E-44DD-93FE-A1D1B88F4589}.Release|x86.ActiveCfg = Release|Any CPU
580+
{3F3F695B-537E-44DD-93FE-A1D1B88F4589}.Release|x86.Build.0 = Release|Any CPU
581+
{33D7A35E-A457-42FB-B849-3E752A372D23}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
582+
{33D7A35E-A457-42FB-B849-3E752A372D23}.Debug|Any CPU.Build.0 = Debug|Any CPU
583+
{33D7A35E-A457-42FB-B849-3E752A372D23}.Debug|x64.ActiveCfg = Debug|Any CPU
584+
{33D7A35E-A457-42FB-B849-3E752A372D23}.Debug|x64.Build.0 = Debug|Any CPU
585+
{33D7A35E-A457-42FB-B849-3E752A372D23}.Debug|x86.ActiveCfg = Debug|Any CPU
586+
{33D7A35E-A457-42FB-B849-3E752A372D23}.Debug|x86.Build.0 = Debug|Any CPU
587+
{33D7A35E-A457-42FB-B849-3E752A372D23}.Release|Any CPU.ActiveCfg = Release|Any CPU
588+
{33D7A35E-A457-42FB-B849-3E752A372D23}.Release|Any CPU.Build.0 = Release|Any CPU
589+
{33D7A35E-A457-42FB-B849-3E752A372D23}.Release|x64.ActiveCfg = Release|Any CPU
590+
{33D7A35E-A457-42FB-B849-3E752A372D23}.Release|x64.Build.0 = Release|Any CPU
591+
{33D7A35E-A457-42FB-B849-3E752A372D23}.Release|x86.ActiveCfg = Release|Any CPU
592+
{33D7A35E-A457-42FB-B849-3E752A372D23}.Release|x86.Build.0 = Release|Any CPU
593+
{3C9F1344-E773-42FF-B98D-BD7277608903}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
594+
{3C9F1344-E773-42FF-B98D-BD7277608903}.Debug|Any CPU.Build.0 = Debug|Any CPU
595+
{3C9F1344-E773-42FF-B98D-BD7277608903}.Debug|x64.ActiveCfg = Debug|Any CPU
596+
{3C9F1344-E773-42FF-B98D-BD7277608903}.Debug|x64.Build.0 = Debug|Any CPU
597+
{3C9F1344-E773-42FF-B98D-BD7277608903}.Debug|x86.ActiveCfg = Debug|Any CPU
598+
{3C9F1344-E773-42FF-B98D-BD7277608903}.Debug|x86.Build.0 = Debug|Any CPU
599+
{3C9F1344-E773-42FF-B98D-BD7277608903}.Release|Any CPU.ActiveCfg = Release|Any CPU
600+
{3C9F1344-E773-42FF-B98D-BD7277608903}.Release|Any CPU.Build.0 = Release|Any CPU
601+
{3C9F1344-E773-42FF-B98D-BD7277608903}.Release|x64.ActiveCfg = Release|Any CPU
602+
{3C9F1344-E773-42FF-B98D-BD7277608903}.Release|x64.Build.0 = Release|Any CPU
603+
{3C9F1344-E773-42FF-B98D-BD7277608903}.Release|x86.ActiveCfg = Release|Any CPU
604+
{3C9F1344-E773-42FF-B98D-BD7277608903}.Release|x86.Build.0 = Release|Any CPU
549605
EndGlobalSection
550606
GlobalSection(SolutionProperties) = preSolution
551607
HideSolutionNode = FALSE
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
3+
<Import Project="..\Microsoft.TemplateEngine.Authoring.TemplateVerifier.IntegrationTests\Microsoft.TemplateEngine.Authoring.TemplateVerifier.IntegrationTests.Shared.props" />
4+
5+
<PropertyGroup>
6+
<DefineConstants>$(DefineConstants);XUNIT_V3</DefineConstants>
7+
</PropertyGroup>
8+
9+
<ItemGroup>
10+
<Compile Include="..\Microsoft.TemplateEngine.Authoring.TemplateVerifier.IntegrationTests\**\*.cs" Link="%(RecursiveDir)%(Filename)%(Extension)"
11+
Exclude="..\Microsoft.TemplateEngine.Authoring.TemplateVerifier.IntegrationTests\Snapshots\**" />
12+
</ItemGroup>
13+
14+
<ItemGroup>
15+
<ProjectReference Include="$(ToolsDir)Microsoft.TemplateEngine.Authoring.TemplateVerifier.XunitV3\Microsoft.TemplateEngine.Authoring.TemplateVerifier.XunitV3.csproj" />
16+
<ProjectReference Include="$(TestDir)Microsoft.TemplateEngine.TestHelper.XunitV3\Microsoft.TemplateEngine.TestHelper.XunitV3.csproj" />
17+
<ProjectReference Include="$(TestDir)Microsoft.TemplateEngine.TestTemplates\Microsoft.TemplateEngine.TestTemplates.csproj" />
18+
<ProjectReference Include="$(ToolsDir)Microsoft.TemplateEngine.Authoring.TemplateApiVerifier.XunitV3\Microsoft.TemplateEngine.Authoring.TemplateApiVerifier.XunitV3.csproj" />
19+
</ItemGroup>
20+
21+
<ItemGroup>
22+
<Compile Remove="Snapshots\**\*" />
23+
<Content Include="..\Microsoft.TemplateEngine.Authoring.TemplateVerifier.IntegrationTests\Snapshots\**\*" Link="Snapshots\%(RecursiveDir)%(Filename)%(Extension)" />
24+
<None Include="..\Microsoft.TemplateEngine.Authoring.TemplateVerifier.IntegrationTests\Snapshots\**\*" Link="Snapshots\%(RecursiveDir)%(Filename)%(Extension)" CopyToOutputDirectory="Never" />
25+
</ItemGroup>
26+
27+
</Project>

test/Microsoft.TemplateEngine.Authoring.TemplateVerifier.IntegrationTests/ExampleTemplateTest.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@
55
using Microsoft.TemplateEngine.Authoring.TemplateApiVerifier;
66
using Microsoft.TemplateEngine.TestHelper;
77
using Microsoft.TemplateEngine.Tests;
8+
#if !XUNIT_V3
89
using Xunit.Abstractions;
10+
#endif
911

1012
namespace Microsoft.TemplateEngine.Authoring.TemplateVerifier.IntegrationTests
1113
{
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<Project>
2+
3+
<PropertyGroup>
4+
<TargetFramework>$(NetCurrent)</TargetFramework>
5+
</PropertyGroup>
6+
7+
<ItemGroup>
8+
<Compile Include="..\Shared\**\*.cs" Link="%(RecursiveDir)%(Filename)%(Extension)" />
9+
</ItemGroup>
10+
11+
</Project>
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

3-
<PropertyGroup>
4-
<TargetFramework>$(NetCurrent)</TargetFramework>
5-
</PropertyGroup>
3+
<Import Project="Microsoft.TemplateEngine.Authoring.TemplateVerifier.IntegrationTests.Shared.props" />
64

75
<ItemGroup>
86
<ProjectReference Include="$(ToolsDir)Microsoft.TemplateEngine.Authoring.TemplateVerifier\Microsoft.TemplateEngine.Authoring.TemplateVerifier.csproj" />
@@ -17,8 +15,4 @@
1715
<None Include="Snapshots\**\*" CopyToOutputDirectory="Never" />
1816
</ItemGroup>
1917

20-
<ItemGroup>
21-
<Compile Include="..\Shared\**\*.cs" Link="%(RecursiveDir)%(Filename)%(Extension)" />
22-
</ItemGroup>
23-
2418
</Project>

test/Microsoft.TemplateEngine.Authoring.TemplateVerifier.IntegrationTests/TemplateEngineSamplesTest.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,9 @@
66
using Microsoft.TemplateEngine.Authoring.TemplateApiVerifier;
77
using Microsoft.TemplateEngine.TestHelper;
88
using Microsoft.TemplateEngine.Tests;
9+
#if !XUNIT_V3
910
using Xunit.Abstractions;
11+
#endif
1012

1113
namespace Microsoft.TemplateEngine.Authoring.TemplateVerifier.IntegrationTests
1214
{

test/Microsoft.TemplateEngine.Authoring.TemplateVerifier.IntegrationTests/VerificationEngineTests.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@
44
using FluentAssertions;
55
using Microsoft.Extensions.Logging;
66
using Microsoft.TemplateEngine.TestHelper;
7+
#if !XUNIT_V3
78
using Xunit.Abstractions;
9+
#endif
810

911
namespace Microsoft.TemplateEngine.Authoring.TemplateVerifier.IntegrationTests
1012
{
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
3+
<Import Project="..\Microsoft.TemplateEngine.Authoring.TemplateVerifier.UnitTests\Microsoft.TemplateEngine.Authoring.TemplateVerifier.UnitTests.Shared.props" />
4+
5+
<PropertyGroup>
6+
<DefineConstants>$(DefineConstants);XUNIT_V3</DefineConstants>
7+
</PropertyGroup>
8+
9+
<ItemGroup>
10+
<Compile Include="..\Microsoft.TemplateEngine.Authoring.TemplateVerifier.UnitTests\**\*.cs" Link="%(RecursiveDir)%(Filename)%(Extension)"
11+
Exclude="..\Microsoft.TemplateEngine.Authoring.TemplateVerifier.UnitTests\Snapshots\**" />
12+
</ItemGroup>
13+
14+
<ItemGroup>
15+
<ProjectReference Include="$(ToolsDir)Microsoft.TemplateEngine.Authoring.TemplateVerifier.XunitV3\Microsoft.TemplateEngine.Authoring.TemplateVerifier.XunitV3.csproj" />
16+
<ProjectReference Include="$(TestDir)Microsoft.TemplateEngine.TestHelper.XunitV3\Microsoft.TemplateEngine.TestHelper.XunitV3.csproj" />
17+
</ItemGroup>
18+
19+
<ItemGroup>
20+
<Compile Remove="Snapshots\**\*" />
21+
<Content Include="..\Microsoft.TemplateEngine.Authoring.TemplateVerifier.UnitTests\Snapshots\**\*" Link="Snapshots\%(RecursiveDir)%(Filename)%(Extension)" />
22+
<None Include="..\Microsoft.TemplateEngine.Authoring.TemplateVerifier.UnitTests\Snapshots\**\*" Link="Snapshots\%(RecursiveDir)%(Filename)%(Extension)" CopyToOutputDirectory="Never" />
23+
</ItemGroup>
24+
25+
</Project>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<Project>
2+
3+
<PropertyGroup>
4+
<TargetFramework>$(NetCurrent)</TargetFramework>
5+
</PropertyGroup>
6+
7+
<ItemGroup>
8+
<PackageReference Include="AwesomeAssertions" />
9+
<PackageReference Include="FakeItEasy" />
10+
</ItemGroup>
11+
12+
</Project>

test/Microsoft.TemplateEngine.Authoring.TemplateVerifier.UnitTests/Microsoft.TemplateEngine.Authoring.TemplateVerifier.UnitTests.csproj

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,12 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

3-
<PropertyGroup>
4-
<TargetFramework>$(NetCurrent)</TargetFramework>
5-
</PropertyGroup>
3+
<Import Project="Microsoft.TemplateEngine.Authoring.TemplateVerifier.UnitTests.Shared.props" />
64

75
<ItemGroup>
86
<ProjectReference Include="$(ToolsDir)Microsoft.TemplateEngine.Authoring.TemplateVerifier\Microsoft.TemplateEngine.Authoring.TemplateVerifier.csproj" />
97
<ProjectReference Include="$(TestDir)Microsoft.TemplateEngine.TestHelper\Microsoft.TemplateEngine.TestHelper.csproj" />
108
</ItemGroup>
119

12-
<ItemGroup>
13-
<PackageReference Include="AwesomeAssertions" />
14-
<PackageReference Include="FakeItEasy" />
15-
</ItemGroup>
16-
1710
<ItemGroup>
1811
<Compile Remove="Snapshots\**\*" />
1912
<Content Include="Snapshots\**\*" />

0 commit comments

Comments
 (0)