From d1b745f249e6cb689caf0604fca02fcac3c8b17f Mon Sep 17 00:00:00 2001 From: Pranav K Date: Mon, 2 Apr 2018 15:19:03 -0700 Subject: [PATCH] Use Razor.Sdk package to verify templates Fixes #400 --- Templating.sln | 10 ++++- build/dependencies.props | 1 + test/GenerateTestProps.targets | 2 +- test/TemplateTests.props.in | 1 + .../Helpers/TemplateTestBase.cs | 39 ++++++++++++++++++- test/Templates.Test/WebApiTemplateTest.cs | 2 +- 6 files changed, 51 insertions(+), 4 deletions(-) diff --git a/Templating.sln b/Templating.sln index 2454676150..391e51b756 100644 --- a/Templating.sln +++ b/Templating.sln @@ -1,6 +1,6 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 15 -VisualStudioVersion = 15.0.27130.2027 +VisualStudioVersion = 15.0.27130.2036 MinimumVisualStudioVersion = 15.0.26124.0 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Templates.Test", "test\Templates.Test\Templates.Test.csproj", "{D43A4D24-D514-44C2-9438-54F6EDF58680}" EndProject @@ -21,6 +21,13 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{F34CD7D7 build\sources.props = build\sources.props EndProjectSection EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{342602FC-9FF3-448D-B12D-F0E91B23DBBF}" + ProjectSection(SolutionItems) = preProject + test\Directory.Build.targets = test\Directory.Build.targets + test\GenerateTestProps.targets = test\GenerateTestProps.targets + test\TemplateTests.props.in = test\TemplateTests.props.in + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -52,6 +59,7 @@ Global HideSolutionNode = FALSE EndGlobalSection GlobalSection(NestedProjects) = preSolution + {D43A4D24-D514-44C2-9438-54F6EDF58680} = {342602FC-9FF3-448D-B12D-F0E91B23DBBF} {ABC9D95C-7FBD-4F8D-827A-00942EA3D0C0} = {0AD6E692-E423-408C-B523-DAFB19412E4B} {402E62D1-7FD0-4E07-812C-0E385D98D6D9} = {0AD6E692-E423-408C-B523-DAFB19412E4B} {1731F6D9-1DFC-49D6-8F28-471194B1962C} = {0AD6E692-E423-408C-B523-DAFB19412E4B} diff --git a/build/dependencies.props b/build/dependencies.props index 3ff3b05297..f3e5a1f9ba 100644 --- a/build/dependencies.props +++ b/build/dependencies.props @@ -33,6 +33,7 @@ 2.0.0 2.1.0-preview2-26326-03 15.6.1 + 2.1.0-preview2-30504 2.1.0-preview2-30504 2.1.0-preview2-30504 0.19.0 diff --git a/test/GenerateTestProps.targets b/test/GenerateTestProps.targets index d23932f7c5..cd27153382 100644 --- a/test/GenerateTestProps.targets +++ b/test/GenerateTestProps.targets @@ -2,7 +2,7 @@ diff --git a/test/TemplateTests.props.in b/test/TemplateTests.props.in index 9cd39793ff..beb6073223 100644 --- a/test/TemplateTests.props.in +++ b/test/TemplateTests.props.in @@ -3,5 +3,6 @@ true ${RestoreSources} ${RuntimeFrameworkVersion} + ${MicrosoftNETSdkRazorPackageVersion} diff --git a/test/Templates.Test/Helpers/TemplateTestBase.cs b/test/Templates.Test/Helpers/TemplateTestBase.cs index f90f9ca1bb..f0d8d7f994 100644 --- a/test/Templates.Test/Helpers/TemplateTestBase.cs +++ b/test/Templates.Test/Helpers/TemplateTestBase.cs @@ -21,6 +21,7 @@ namespace Templates.Test protected string ProjectGuid { get; set; } protected string TemplateOutputDir { get; set; } protected ITestOutputHelper Output { get; private set; } + protected bool UseRazorSdkPackage { get; set; } = true; public TemplateTestBase(ITestOutputHelper output) { @@ -39,7 +40,15 @@ namespace Templates.Test // We don't want any of the host repo's build config interfering with // how the test project is built, so disconnect it from the // Directory.Build.props/targets context - File.WriteAllText(Path.Combine(TemplateOutputDir, "Directory.Build.props"), ""); + + var templatesTestsPropsFilePath = Path.Combine(basePath, "TemplateTests.props"); + var directoryBuildPropsContent = +$@" + + +"; + + File.WriteAllText(Path.Combine(TemplateOutputDir, "Directory.Build.props"), directoryBuildPropsContent); File.WriteAllText(Path.Combine(TemplateOutputDir, "Directory.Build.targets"), ""); } @@ -50,6 +59,8 @@ namespace Templates.Test protected void RunDotNetNew(string templateName, string targetFrameworkOverride, string auth = null, string language = null, bool useLocalDB = false, bool noHttps = false) { + SetAfterDirectoryBuildPropsContents(); + var args = $"new {templateName}"; if (!string.IsNullOrEmpty(targetFrameworkOverride)) @@ -85,6 +96,32 @@ namespace Templates.Test } } + protected void SetAfterDirectoryBuildPropsContents() + { + var content = GetAfterDirectoryBuildPropsContent(); + if (!string.IsNullOrEmpty(content)) + { + content = "" + Environment.NewLine + content + Environment.NewLine + ""; + File.WriteAllText(Path.Combine(TemplateOutputDir, "Directory.Build.After.props"), content); + } + } + + protected virtual string GetAfterDirectoryBuildPropsContent() + { + var content = string.Empty; + if (UseRazorSdkPackage) + { + content += +@" + + + +"; + } + + return content; + } + protected void RunDotNet(string arguments) { lock (DotNetNewLock) diff --git a/test/Templates.Test/WebApiTemplateTest.cs b/test/Templates.Test/WebApiTemplateTest.cs index 536b30d001..c7ca5be7bc 100644 --- a/test/Templates.Test/WebApiTemplateTest.cs +++ b/test/Templates.Test/WebApiTemplateTest.cs @@ -19,7 +19,7 @@ namespace Templates.Test public void WebApiTemplate_Works_NetFramework() => WebApiTemplateImpl("net461"); - [Fact(Skip = "https://github.com/aspnet/templating/issues/400")] + [Fact] public void WebApiTemplate_Works_NetCore() => WebApiTemplateImpl(null);