Make testapps run without deployment

This commit is contained in:
Pranav K 2018-01-29 16:47:34 -08:00
parent c0cb8f009c
commit 13388ca6ae
8 changed files with 76 additions and 88 deletions

View File

@ -42,17 +42,17 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
foreach (var project in new string[] { projectName, }.Concat(additionalProjects)) foreach (var project in new string[] { projectName, }.Concat(additionalProjects))
{ {
var projectRoot = Path.Combine(solutionRoot, "test", "testapps", project); var testAppsRoot = Path.Combine(solutionRoot, "test", "testapps");
var projectRoot = Path.Combine(testAppsRoot, project);
if (!Directory.Exists(projectRoot)) if (!Directory.Exists(projectRoot))
{ {
throw new InvalidOperationException($"Could not find project at '{projectRoot}'"); throw new InvalidOperationException($"Could not find project at '{projectRoot}'");
} }
var projectDestination = Path.Combine(destinationPath, project); var projectDestination = Path.Combine(destinationPath, project);
Directory.CreateDirectory(projectDestination); var projectDestinationDir = Directory.CreateDirectory(projectDestination);
CopyDirectory(new DirectoryInfo(projectRoot), new DirectoryInfo(projectDestination)); CopyDirectory(new DirectoryInfo(projectRoot), projectDestinationDir);
CreateDirectoryProps(projectRoot, binariesRoot, destinationPath); SetupDirectoryBuildFiles(solutionRoot, binariesRoot, testAppsRoot, projectDestination);
CreateDirectoryTargets(destinationPath);
} }
CopyGlobalJson(solutionRoot, destinationPath); CopyGlobalJson(solutionRoot, destinationPath);
@ -86,38 +86,24 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
} }
} }
void CreateDirectoryProps(string originalProjectRoot, string binariesRoot, string projectRoot) void SetupDirectoryBuildFiles(string solutionRoot, string binariesRoot, string testAppsRoot, string projectDestination)
{ {
#if DEBUG var beforeDirectoryPropsContent =
var configuration = "Debug"; $@"<Project>
#elif RELEASE
var configuration = "Release";
#else
#error Unknown Configuration
#endif
var text = $@"
<Project>
<Import Project=""{originalProjectRoot}\..\..\..\src\Microsoft.AspNetCore.Razor.Sdk\SDK\Sdk.props""/>
<PropertyGroup> <PropertyGroup>
<OriginalProjectRoot>{originalProjectRoot}</OriginalProjectRoot> <SolutionRoot>{solutionRoot}</SolutionRoot>
<BinariesRoot>{binariesRoot}</BinariesRoot> <BinariesRoot>{binariesRoot}</BinariesRoot>
<_RazorMSBuildRoot>$(OriginalProjectRoot)\..\..\..\src\Microsoft.AspNetCore.Razor.Design\bin\{configuration}\netstandard2.0\</_RazorMSBuildRoot>
</PropertyGroup> </PropertyGroup>
<Import Project=""$(OriginalProjectRoot)\..\..\..\src\Microsoft.AspNetCore.Razor.Design\build\netstandard2.0\Microsoft.AspNetCore.Razor.Design.props""/> </Project>";
</Project> File.WriteAllText(Path.Combine(projectDestination, "Before.Directory.Build.props"), beforeDirectoryPropsContent);
";
File.WriteAllText(Path.Combine(projectRoot, "Directory.Build.props"), text);
}
void CreateDirectoryTargets(string projectRoot) new List<string> { "Directory.Build.props", "Directory.Build.targets" }
{ .ForEach(file =>
var text = $@" {
<Project> var source = Path.Combine(testAppsRoot, file);
<Import Project=""$(OriginalProjectRoot)\..\..\..\src\Microsoft.AspNetCore.Razor.Sdk\SDK\Sdk.targets""/> var destination = Path.Combine(projectDestination, file);
</Project> File.Copy(source, destination);
"; });
File.WriteAllText(Path.Combine(projectRoot, "Directory.Build.targets"), text);
} }
void CopyGlobalJson(string solutionRoot, string projectRoot) void CopyGlobalJson(string solutionRoot, string projectRoot)

View File

@ -207,13 +207,12 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
{ {
var content = @" var content = @"
<Project> <Project>
<Import Project=""$([MSBuild]::GetPathOfFileAbove('Directory.Build.props', '$(MSBuildThisFileDirectory)../'))"" />
<ItemGroup> <ItemGroup>
<MvcRazorFilesToCompile Include=""Views/Home/About.cshtml"" /> <MvcRazorFilesToCompile Include=""Views/Home/About.cshtml"" />
</ItemGroup> </ItemGroup>
</Project> </Project>
"; ";
File.WriteAllText(Path.Combine(Project.DirectoryPath, "Directory.Build.props"), content); File.WriteAllText(Path.Combine(Project.DirectoryPath, "After.Directory.Build.props"), content);
var result = await DotnetMSBuild(RazorGenerateTarget); var result = await DotnetMSBuild(RazorGenerateTarget);
@ -229,7 +228,6 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
{ {
var content = @" var content = @"
<Project> <Project>
<Import Project=""$([MSBuild]::GetPathOfFileAbove('Directory.Build.props', '$(MSBuildThisFileDirectory)../'))"" />
<PropertyGroup> <PropertyGroup>
<EnableDefaultRazorGenerateItems>false</EnableDefaultRazorGenerateItems> <EnableDefaultRazorGenerateItems>false</EnableDefaultRazorGenerateItems>
</PropertyGroup> </PropertyGroup>
@ -238,7 +236,7 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
</ItemGroup> </ItemGroup>
</Project> </Project>
"; ";
File.WriteAllText(Path.Combine(Project.DirectoryPath, "Directory.Build.props"), content); File.WriteAllText(Path.Combine(Project.DirectoryPath, "After.Directory.Build.props"), content);
var result = await DotnetMSBuild(RazorGenerateTarget); var result = await DotnetMSBuild(RazorGenerateTarget);

View File

@ -1,4 +1,11 @@
<Project Sdk="Microsoft.NET.Sdk.Web"> <Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<_RazorMSBuildRoot>$(SolutionRoot)src\Microsoft.AspNetCore.Razor.Design\bin\$(Configuration)\netstandard2.0\</_RazorMSBuildRoot>
</PropertyGroup>
<Import Project="$(SolutionRoot)src\Microsoft.AspNetCore.Razor.Sdk\SDK\Sdk.props" />
<Import Project="$(SolutionRoot)src\Microsoft.AspNetCore.Razor.Design\build\netstandard2.0\Microsoft.AspNetCore.Razor.Design.props" />
<PropertyGroup> <PropertyGroup>
<TargetFramework>netcoreapp2.0</TargetFramework> <TargetFramework>netcoreapp2.0</TargetFramework>
@ -9,17 +16,4 @@
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\ClassLibrary\ClassLibrary.csproj"/> <ProjectReference Include="..\ClassLibrary\ClassLibrary.csproj"/>
</ItemGroup> </ItemGroup>
<ItemGroup Condition="'$(BinariesRoot)'==''">
<!-- In test scenarios $(BinariesRoot) is defined in a generated Directory.Build.props file -->
<ProjectReference Include="..\..\Microsoft.AspNetCore.Razor.Test.MvcShim\Microsoft.AspNetCore.Razor.Test.MvcShim.csproj"/>
<ProjectReference Include="..\..\..\src\Microsoft.AspNetCore.Razor.Runtime\Microsoft.AspNetCore.Razor.Runtime.csproj"/>
</ItemGroup>
<ItemGroup Condition="'$(BinariesRoot)'!=''">
<Reference Include="$(BinariesRoot)\Microsoft.AspNetCore.Html.Abstractions.dll"/>
<Reference Include="$(BinariesRoot)\Microsoft.AspNetCore.Razor.dll"/>
<Reference Include="$(BinariesRoot)\Microsoft.AspNetCore.Razor.Runtime.dll"/>
<Reference Include="$(BinariesRoot)\Microsoft.AspNetCore.Razor.Test.MvcShim.dll"/>
</ItemGroup>
</Project> </Project>

View File

@ -1,4 +1,11 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<_RazorMSBuildRoot>$(SolutionRoot)src\Microsoft.AspNetCore.Razor.Design\bin\$(Configuration)\netstandard2.0\</_RazorMSBuildRoot>
</PropertyGroup>
<Import Project="$(SolutionRoot)src\Microsoft.AspNetCore.Razor.Sdk\SDK\Sdk.props" />
<Import Project="$(SolutionRoot)src\Microsoft.AspNetCore.Razor.Design\build\netstandard2.0\Microsoft.AspNetCore.Razor.Design.props" />
<PropertyGroup> <PropertyGroup>
<TargetFramework>netcoreapp2.0</TargetFramework> <TargetFramework>netcoreapp2.0</TargetFramework>
@ -6,22 +13,9 @@
<ResolvedRazorCompileToolset Condition="'$(RazorCompileToolset)'==''">RazorSDK</ResolvedRazorCompileToolset> <ResolvedRazorCompileToolset Condition="'$(RazorCompileToolset)'==''">RazorSDK</ResolvedRazorCompileToolset>
</PropertyGroup> </PropertyGroup>
<ItemGroup Condition="'$(BinariesRoot)'==''">
<!-- In test scenarios $(BinariesRoot) is defined in a generated Directory.Build.props file -->
<ProjectReference Include="..\..\Microsoft.AspNetCore.Razor.Test.MvcShim\Microsoft.AspNetCore.Razor.Test.MvcShim.csproj"/>
<ProjectReference Include="..\..\..\src\Microsoft.AspNetCore.Razor.Runtime\Microsoft.AspNetCore.Razor.Runtime.csproj"/>
</ItemGroup>
<ItemGroup> <ItemGroup>
<Content Include="**\*.cshtml"> <Content Include="**\*.cshtml">
<Pack>false</Pack> <Pack>false</Pack>
</Content> </Content>
</ItemGroup> </ItemGroup>
<ItemGroup Condition="'$(BinariesRoot)'!=''">
<Reference Include="$(BinariesRoot)\Microsoft.AspNetCore.Html.Abstractions.dll"/>
<Reference Include="$(BinariesRoot)\Microsoft.AspNetCore.Razor.dll"/>
<Reference Include="$(BinariesRoot)\Microsoft.AspNetCore.Razor.Runtime.dll"/>
<Reference Include="$(BinariesRoot)\Microsoft.AspNetCore.Razor.Test.MvcShim.dll"/>
</ItemGroup>
</Project> </Project>

View File

@ -0,0 +1,25 @@
<Project>
<Import Project="Before.Directory.Build.props" Condition="Exists('Before.Directory.Build.props')" />
<PropertyGroup>
<SolutionRoot Condition="'$(SolutionRoot)' == ''">$(MSBuildThisFileDirectory)..\..\</SolutionRoot>
<SolutionRoot>$([MSBuild]::EnsureTrailingSlash('$(SolutionRoot)'))</SolutionRoot>
</PropertyGroup>
<ItemGroup Condition="'$(BinariesRoot)'==''">
<!-- In test scenarios $(BinariesRoot) is defined in a generated Directory.Build.props file -->
<ProjectReference Include="..\..\Microsoft.AspNetCore.Razor.Test.MvcShim\Microsoft.AspNetCore.Razor.Test.MvcShim.csproj"/>
<ProjectReference Include="..\..\..\src\Microsoft.AspNetCore.Razor.Runtime\Microsoft.AspNetCore.Razor.Runtime.csproj"/>
<ProjectReference Include="..\..\..\src\Microsoft.AspNetCore.Razor.Design\Microsoft.AspNetCore.Razor.Design.csproj" ReferenceOutputAssembly="false" />
</ItemGroup>
<ItemGroup Condition="'$(BinariesRoot)'!=''">
<Reference Include="$(BinariesRoot)\Microsoft.AspNetCore.Html.Abstractions.dll"/>
<Reference Include="$(BinariesRoot)\Microsoft.AspNetCore.Razor.dll"/>
<Reference Include="$(BinariesRoot)\Microsoft.AspNetCore.Razor.Runtime.dll"/>
<Reference Include="$(BinariesRoot)\Microsoft.AspNetCore.Razor.Test.MvcShim.dll"/>
</ItemGroup>
<Import Project="After.Directory.Build.props" Condition="Exists('After.Directory.Build.props')" />
</Project>

View File

@ -0,0 +1,3 @@
<Project>
<Import Project="$(SolutionRoot)src\Microsoft.AspNetCore.Razor.Sdk\SDK\Sdk.targets" />
</Project>

View File

@ -1,21 +1,15 @@
<Project Sdk="Microsoft.NET.Sdk.Web"> <Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<_RazorMSBuildRoot>$(SolutionRoot)src\Microsoft.AspNetCore.Razor.Design\bin\$(Configuration)\netstandard2.0\</_RazorMSBuildRoot>
</PropertyGroup>
<Import Project="$(SolutionRoot)src\Microsoft.AspNetCore.Razor.Sdk\SDK\Sdk.props" />
<Import Project="$(SolutionRoot)src\Microsoft.AspNetCore.Razor.Design\build\netstandard2.0\Microsoft.AspNetCore.Razor.Design.props" />
<PropertyGroup> <PropertyGroup>
<TargetFramework>netcoreapp2.0</TargetFramework> <TargetFramework>netcoreapp2.0</TargetFramework>
<!-- Workaround until we get a new SDK build --> <!-- Workaround until we get a new SDK build -->
<ResolvedRazorCompileToolset Condition="'$(RazorCompileToolset)'==''">RazorSDK</ResolvedRazorCompileToolset> <ResolvedRazorCompileToolset Condition="'$(RazorCompileToolset)'==''">RazorSDK</ResolvedRazorCompileToolset>
</PropertyGroup> </PropertyGroup>
<ItemGroup Condition="'$(BinariesRoot)'==''">
<!-- In test scenarios $(BinariesRoot) is defined in a generated Directory.Build.props file -->
<ProjectReference Include="..\..\Microsoft.AspNetCore.Razor.Test.MvcShim\Microsoft.AspNetCore.Razor.Test.MvcShim.csproj"/>
<ProjectReference Include="..\..\..\src\Microsoft.AspNetCore.Razor.Runtime\Microsoft.AspNetCore.Razor.Runtime.csproj"/>
</ItemGroup>
<ItemGroup Condition="'$(BinariesRoot)'!=''">
<Reference Include="$(BinariesRoot)\Microsoft.AspNetCore.Html.Abstractions.dll"/>
<Reference Include="$(BinariesRoot)\Microsoft.AspNetCore.Razor.dll"/>
<Reference Include="$(BinariesRoot)\Microsoft.AspNetCore.Razor.Runtime.dll"/>
<Reference Include="$(BinariesRoot)\Microsoft.AspNetCore.Razor.Test.MvcShim.dll"/>
</ItemGroup>
</Project> </Project>

View File

@ -1,21 +1,15 @@
<Project Sdk="Microsoft.NET.Sdk.Web"> <Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<_RazorMSBuildRoot>$(SolutionRoot)src\Microsoft.AspNetCore.Razor.Design\bin\$(Configuration)\netstandard2.0\</_RazorMSBuildRoot>
</PropertyGroup>
<Import Project="$(SolutionRoot)src\Microsoft.AspNetCore.Razor.Sdk\SDK\Sdk.props" />
<Import Project="$(SolutionRoot)src\Microsoft.AspNetCore.Razor.Design\build\netstandard2.0\Microsoft.AspNetCore.Razor.Design.props" />
<PropertyGroup> <PropertyGroup>
<TargetFramework>netcoreapp2.0</TargetFramework> <TargetFramework>netcoreapp2.0</TargetFramework>
<!-- Workaround until we get a new SDK build --> <!-- Workaround until we get a new SDK build -->
<ResolvedRazorCompileToolset Condition="'$(RazorCompileToolset)'==''">RazorSDK</ResolvedRazorCompileToolset> <ResolvedRazorCompileToolset Condition="'$(RazorCompileToolset)'==''">RazorSDK</ResolvedRazorCompileToolset>
</PropertyGroup> </PropertyGroup>
<ItemGroup Condition="'$(BinariesRoot)'==''">
<!-- In test scenarios $(BinariesRoot) is defined in a generated Directory.Build.props file -->
<ProjectReference Include="..\..\Microsoft.AspNetCore.Razor.Test.MvcShim\Microsoft.AspNetCore.Razor.Test.MvcShim.csproj"/>
<ProjectReference Include="..\..\..\src\Microsoft.AspNetCore.Razor.Runtime\Microsoft.AspNetCore.Razor.Runtime.csproj"/>
</ItemGroup>
<ItemGroup Condition="'$(BinariesRoot)'!=''">
<Reference Include="$(BinariesRoot)\Microsoft.AspNetCore.Html.Abstractions.dll"/>
<Reference Include="$(BinariesRoot)\Microsoft.AspNetCore.Razor.dll"/>
<Reference Include="$(BinariesRoot)\Microsoft.AspNetCore.Razor.Runtime.dll"/>
<Reference Include="$(BinariesRoot)\Microsoft.AspNetCore.Razor.Test.MvcShim.dll"/>
</ItemGroup>
</Project> </Project>