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))
{
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))
{
throw new InvalidOperationException($"Could not find project at '{projectRoot}'");
}
var projectDestination = Path.Combine(destinationPath, project);
Directory.CreateDirectory(projectDestination);
CopyDirectory(new DirectoryInfo(projectRoot), new DirectoryInfo(projectDestination));
CreateDirectoryProps(projectRoot, binariesRoot, destinationPath);
CreateDirectoryTargets(destinationPath);
var projectDestinationDir = Directory.CreateDirectory(projectDestination);
CopyDirectory(new DirectoryInfo(projectRoot), projectDestinationDir);
SetupDirectoryBuildFiles(solutionRoot, binariesRoot, testAppsRoot, projectDestination);
}
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 configuration = "Debug";
#elif RELEASE
var configuration = "Release";
#else
#error Unknown Configuration
#endif
var text = $@"
<Project>
<Import Project=""{originalProjectRoot}\..\..\..\src\Microsoft.AspNetCore.Razor.Sdk\SDK\Sdk.props""/>
var beforeDirectoryPropsContent =
$@"<Project>
<PropertyGroup>
<OriginalProjectRoot>{originalProjectRoot}</OriginalProjectRoot>
<SolutionRoot>{solutionRoot}</SolutionRoot>
<BinariesRoot>{binariesRoot}</BinariesRoot>
<_RazorMSBuildRoot>$(OriginalProjectRoot)\..\..\..\src\Microsoft.AspNetCore.Razor.Design\bin\{configuration}\netstandard2.0\</_RazorMSBuildRoot>
</PropertyGroup>
<Import Project=""$(OriginalProjectRoot)\..\..\..\src\Microsoft.AspNetCore.Razor.Design\build\netstandard2.0\Microsoft.AspNetCore.Razor.Design.props""/>
</Project>
";
File.WriteAllText(Path.Combine(projectRoot, "Directory.Build.props"), text);
}
</Project>";
File.WriteAllText(Path.Combine(projectDestination, "Before.Directory.Build.props"), beforeDirectoryPropsContent);
void CreateDirectoryTargets(string projectRoot)
{
var text = $@"
<Project>
<Import Project=""$(OriginalProjectRoot)\..\..\..\src\Microsoft.AspNetCore.Razor.Sdk\SDK\Sdk.targets""/>
</Project>
";
File.WriteAllText(Path.Combine(projectRoot, "Directory.Build.targets"), text);
new List<string> { "Directory.Build.props", "Directory.Build.targets" }
.ForEach(file =>
{
var source = Path.Combine(testAppsRoot, file);
var destination = Path.Combine(projectDestination, file);
File.Copy(source, destination);
});
}
void CopyGlobalJson(string solutionRoot, string projectRoot)

View File

@ -207,13 +207,12 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
{
var content = @"
<Project>
<Import Project=""$([MSBuild]::GetPathOfFileAbove('Directory.Build.props', '$(MSBuildThisFileDirectory)../'))"" />
<ItemGroup>
<MvcRazorFilesToCompile Include=""Views/Home/About.cshtml"" />
</ItemGroup>
</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);
@ -229,7 +228,6 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
{
var content = @"
<Project>
<Import Project=""$([MSBuild]::GetPathOfFileAbove('Directory.Build.props', '$(MSBuildThisFileDirectory)../'))"" />
<PropertyGroup>
<EnableDefaultRazorGenerateItems>false</EnableDefaultRazorGenerateItems>
</PropertyGroup>
@ -238,7 +236,7 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
</ItemGroup>
</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);

View File

@ -1,4 +1,11 @@
<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>
<TargetFramework>netcoreapp2.0</TargetFramework>
@ -9,17 +16,4 @@
<ItemGroup>
<ProjectReference Include="..\ClassLibrary\ClassLibrary.csproj"/>
</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>

View File

@ -1,4 +1,11 @@
<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>
<TargetFramework>netcoreapp2.0</TargetFramework>
@ -6,22 +13,9 @@
<ResolvedRazorCompileToolset Condition="'$(RazorCompileToolset)'==''">RazorSDK</ResolvedRazorCompileToolset>
</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>
<Content Include="**\*.cshtml">
<Pack>false</Pack>
</Content>
</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>

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">
<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>
<TargetFramework>netcoreapp2.0</TargetFramework>
<!-- Workaround until we get a new SDK build -->
<ResolvedRazorCompileToolset Condition="'$(RazorCompileToolset)'==''">RazorSDK</ResolvedRazorCompileToolset>
</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>

View File

@ -1,21 +1,15 @@
<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>
<TargetFramework>netcoreapp2.0</TargetFramework>
<!-- Workaround until we get a new SDK build -->
<ResolvedRazorCompileToolset Condition="'$(RazorCompileToolset)'==''">RazorSDK</ResolvedRazorCompileToolset>
</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>