Allow different test sdk test (#687)

Allow different test sdk test
This commit is contained in:
Marco Rossignoli
2020-01-11 11:55:16 +01:00
committed by GitHub
parent 8b667d1e40
commit 8cb1ebc0da
4 changed files with 46 additions and 12 deletions
+6 -6
View File
@@ -53,7 +53,7 @@ namespace Coverlet.Integration.Tests
return manifest.Metadata.Version.OriginalVersion;
}
private protected ClonedTemplateProject CloneTemplateProject(bool cleanupOnDispose = true)
private protected ClonedTemplateProject CloneTemplateProject(bool cleanupOnDispose = true, string testSDKVersion = "16.4.0")
{
DirectoryInfo finalRoot = Directory.CreateDirectory(Guid.NewGuid().ToString("N"));
foreach (string file in (Directory.GetFiles($"../../../../coverlet.integration.template", "*.cs")
@@ -74,7 +74,7 @@ namespace Coverlet.Integration.Tests
<Project>
</Project>");
AddMicrosoftNETTestSdkRef(finalRoot.FullName);
AddMicrosoftNETTestSdkRef(finalRoot.FullName, testSDKVersion);
return new ClonedTemplateProject(finalRoot.FullName, cleanupOnDispose);
}
@@ -123,7 +123,7 @@ namespace Coverlet.Integration.Tests
xml.Save(nugetFile);
}
private protected void AddMicrosoftNETTestSdkRef(string projectPath)
private protected void AddMicrosoftNETTestSdkRef(string projectPath, string version)
{
string csproj = Path.Combine(projectPath, "coverlet.integration.template.csproj");
if (!File.Exists(csproj))
@@ -139,8 +139,7 @@ namespace Coverlet.Integration.Tests
xml.Element("Project")
.Element("ItemGroup")
.Add(new XElement("PackageReference", new XAttribute("Include", "Microsoft.NET.Test.Sdk"),
// We use this due to know issue until official release https://github.com/tonerdo/coverlet/blob/master/Documentation/KnowIssues.md
new XAttribute("Version", "16.5.0-preview-20200110-02")));
new XAttribute("Version", version)));
xml.Save(csproj);
}
@@ -277,8 +276,9 @@ namespace Coverlet.Integration.Tests
class ClonedTemplateProject : IDisposable
{
private bool _cleanupOnDispose;
public string? ProjectRootPath { get; private set; }
public bool _cleanupOnDispose { get; set; }
// We need to have a different asm name to avoid issue with collectors, we filter [coverlet.*]* by default
// https://github.com/tonerdo/coverlet/pull/410#discussion_r284526728
+38 -4
View File
@@ -1,21 +1,55 @@
using System.IO;
using System;
using System.IO;
using System.Linq;
using Xunit;
namespace Coverlet.Integration.Tests
{
public class Collectors : BaseTest
public class TestSDK_16_2_0 : Collectors
{
public TestSDK_16_2_0()
{
TestSDKVersion = "16.2.0";
}
private protected override void AssertCollectorsInjection(ClonedTemplateProject clonedTemplateProject)
{
// Check out/in process collectors injection
Assert.Contains("[coverlet]", File.ReadAllText(clonedTemplateProject.GetFiles("log.datacollector.*.txt").Single()));
// There is a bug in this SDK version https://github.com/microsoft/vstest/pull/2221
// in-proc coverlet.collector.dll collector with version != 1.0.0.0 won't be loaded
// Assert.Contains("[coverlet]", File.ReadAllText(clonedTemplateProject.GetFiles("log.host.*.txt").Single()));
}
}
public class TestSDK_Preview : Collectors
{
public TestSDK_Preview()
{
TestSDKVersion = "16.5.0-preview-20200110-02";
}
}
public abstract class Collectors : BaseTest
{
protected string? TestSDKVersion { get; set; }
private ClonedTemplateProject PrepareTemplateProject()
{
ClonedTemplateProject clonedTemplateProject = CloneTemplateProject();
if (TestSDKVersion is null)
{
throw new ArgumentNullException("Invalid TestSDKVersion");
}
ClonedTemplateProject clonedTemplateProject = CloneTemplateProject(testSDKVersion: TestSDKVersion);
UpdateNugeConfigtWithLocalPackageFolder(clonedTemplateProject.ProjectRootPath!);
AddCoverletCollectosRef(clonedTemplateProject.ProjectRootPath!);
return clonedTemplateProject;
}
private void AssertCollectorsInjection(ClonedTemplateProject clonedTemplateProject)
private protected virtual void AssertCollectorsInjection(ClonedTemplateProject clonedTemplateProject)
{
// Check out/in process collectors injection
Assert.Contains("[coverlet]", File.ReadAllText(clonedTemplateProject.GetFiles("log.datacollector.*.txt").Single()));
@@ -9,7 +9,7 @@ namespace Coverlet.Integration.Tests
{
private string InstallTool(string projectPath)
{
DotnetCli($"tool install coverlet.console --version {GetPackageVersion("*console*.nupkg")} --tool-path \"{Path.Combine(projectPath, "coverletTool")}\"", out string standardOutput, out string standardError, projectPath);
_ = DotnetCli($"tool install coverlet.console --version {GetPackageVersion("*console*.nupkg")} --tool-path \"{Path.Combine(projectPath, "coverletTool")}\"", out string standardOutput, out _, projectPath);
Assert.Contains("was successfully installed.", standardOutput);
return Path.Combine(projectPath, "coverletTool", "coverlet ");
}
+1 -1
View File
@@ -8,7 +8,7 @@ namespace Coverlet.Integration.Tests
{
private ClonedTemplateProject PrepareTemplateProject()
{
ClonedTemplateProject clonedTemplateProject = CloneTemplateProject(false);
ClonedTemplateProject clonedTemplateProject = CloneTemplateProject();
UpdateNugeConfigtWithLocalPackageFolder(clonedTemplateProject.ProjectRootPath!);
AddCoverletMsbuildRef(clonedTemplateProject.ProjectRootPath!);
return clonedTemplateProject;