@@ -2,6 +2,11 @@
|
||||
|
||||
Contributions are highly welcome, however, except for very small changes, kindly file an issue and let's have a discussion before you open a pull request.
|
||||
|
||||
## Requirements
|
||||
|
||||
.NET SDK 2.2 https://dotnet.microsoft.com/download/dotnet-core/2.2
|
||||
.NET SDK 3.1 https://dotnet.microsoft.com/download/dotnet-core/3.1
|
||||
|
||||
## Building the Project
|
||||
|
||||
Clone this repo:
|
||||
|
||||
@@ -4,11 +4,12 @@
|
||||
<RepoRoot>$(MSBuildThisFileDirectory)</RepoRoot>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<PackageOutputPath>$(MSBuildThisFileDirectory)bin\$(Configuration)\Packages\</PackageOutputPath>
|
||||
|
||||
<PublishRepositoryUrl>true</PublishRepositoryUrl>
|
||||
<EmbedUntrackedSources>true</EmbedUntrackedSources>
|
||||
<IncludeSymbols>true</IncludeSymbols>
|
||||
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
|
||||
<MSBuildTreatWarningsAsErrors>true</MSBuildTreatWarningsAsErrors>
|
||||
<LangVersion>preview</LangVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 6.5 KiB |
+7
-2
@@ -1,7 +1,12 @@
|
||||
steps:
|
||||
- task: UseDotNet@2
|
||||
inputs:
|
||||
version: 2.2.402
|
||||
version: 2.2.207
|
||||
displayName: Install .NET Core SDK
|
||||
|
||||
- task: UseDotNet@2
|
||||
inputs:
|
||||
version: 3.1.100
|
||||
displayName: Install .NET Core SDK
|
||||
|
||||
- script: dotnet restore
|
||||
@@ -10,7 +15,7 @@ steps:
|
||||
- script: dotnet build -c $(BuildConfiguration) --no-restore
|
||||
displayName: Build
|
||||
|
||||
- script: dotnet pack -c $(BuildConfiguration) --no-build
|
||||
- script: dotnet pack -c $(BuildConfiguration)
|
||||
displayName: Pack
|
||||
|
||||
- task: DotNetCoreCLI@2
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"sdk": {
|
||||
"version": "2.2.402"
|
||||
"version": "3.1.100"
|
||||
}
|
||||
}
|
||||
@@ -2,21 +2,34 @@
|
||||
<PropertyGroup>
|
||||
<TargetFramework>netcoreapp2.0</TargetFramework>
|
||||
<AssemblyTitle>coverlet.collector</AssemblyTitle>
|
||||
<PackageId>coverlet.collector</PackageId>
|
||||
<DevelopmentDependency>true</DevelopmentDependency>
|
||||
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
|
||||
<IncludeBuildOutput>false</IncludeBuildOutput>
|
||||
<!--
|
||||
suppress warning https://docs.microsoft.com/en-us/nuget/reference/errors-and-warnings/nu5128
|
||||
If your package does not contain any lib/ or ref/ files and is not a meta-package,
|
||||
it likely does not have any dependencies that the package consumer needs.
|
||||
If you are packing with NuGet's MSBuild Pack target, you can set <SuppressDependenciesWhenPacking>true</SuppressDependenciesWhenPacking> in any PropertyGroup in your project file.
|
||||
-->
|
||||
<SuppressDependenciesWhenPacking>true</SuppressDependenciesWhenPacking>
|
||||
<TargetsForTfmSpecificContentInPackage>$(TargetsForTfmSpecificContentInPackage);PackBuildOutputs</TargetsForTfmSpecificContentInPackage>
|
||||
<!-- Open issue https://github.com/NuGet/Home/issues/8941 -->
|
||||
<NoWarn>$(NoWarn);NU5127</NoWarn>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- Nuget package properties https://docs.microsoft.com/en-us/nuget/reference/msbuild-targets -->
|
||||
<PropertyGroup>
|
||||
<Title>coverlet.collector</Title>
|
||||
<PackageId>coverlet.collector</PackageId>
|
||||
<Authors>tonerdo</Authors>
|
||||
<PackageLicenseExpression>MIT</PackageLicenseExpression>
|
||||
<PackageProjectUrl>http://github.com/tonerdo/coverlet</PackageProjectUrl>
|
||||
<PackageIconUrl>https://raw.githubusercontent.com/tonerdo/coverlet/master/_assets/coverlet-icon.svg?sanitize=true</PackageIconUrl>
|
||||
<PackageIcon>coverlet-icon.png</PackageIcon>
|
||||
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
|
||||
<DevelopmentDependency>true</DevelopmentDependency>
|
||||
<Description>Coverlet is a cross platform code coverage library for .NET, with support for line, branch and method coverage.</Description>
|
||||
<PackageTags>coverage testing unit-test lcov opencover quality</PackageTags>
|
||||
<RepositoryType>git</RepositoryType>
|
||||
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
|
||||
<IncludeBuildOutput>false</IncludeBuildOutput>
|
||||
<SuppressDependenciesWhenPacking>true</SuppressDependenciesWhenPacking>
|
||||
<TargetsForTfmSpecificContentInPackage>$(TargetsForTfmSpecificContentInPackage);PackBuildOutputs</TargetsForTfmSpecificContentInPackage>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
@@ -25,6 +38,7 @@
|
||||
|
||||
<ItemGroup>
|
||||
<None Update="build\**" Pack="true" PackagePath="" />
|
||||
<None Include="$(MSBuildThisFileDirectory)..\..\_assets\coverlet-icon.png" Pack="true" PackagePath="\" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
@@ -6,11 +6,16 @@
|
||||
<ToolCommandName>coverlet</ToolCommandName>
|
||||
<PackAsTool>true</PackAsTool>
|
||||
<AssemblyTitle>coverlet.console</AssemblyTitle>
|
||||
<Authors>tonerdo</Authors>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- Nuget package properties https://docs.microsoft.com/en-us/nuget/reference/msbuild-targets -->
|
||||
<PropertyGroup>
|
||||
<PackageId>$(AssemblyTitle)</PackageId>
|
||||
<Authors>tonerdo</Authors>
|
||||
<Description>Coverlet is a cross platform code coverage tool for .NET, with support for line, branch and method coverage.</Description>
|
||||
<PackageTags>coverage;testing;unit-test;lcov;opencover;quality</PackageTags>
|
||||
<PackageIconUrl>https://raw.githubusercontent.com/tonerdo/coverlet/master/_assets/coverlet-icon.svg?sanitize=true</PackageIconUrl>
|
||||
<PackageIcon>coverlet-icon.png</PackageIcon>
|
||||
<PackageProjectUrl>https://github.com/tonerdo/coverlet</PackageProjectUrl>
|
||||
<PackageLicenseExpression>MIT</PackageLicenseExpression>
|
||||
<RepositoryType>git</RepositoryType>
|
||||
@@ -24,4 +29,8 @@
|
||||
<ProjectReference Include="$(MSBuildThisFileDirectory)..\coverlet.core\coverlet.core.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<None Include="$(MSBuildThisFileDirectory)..\..\_assets\coverlet-icon.png" Pack="true" PackagePath="\"/>
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
<TargetFramework>netstandard2.0</TargetFramework>
|
||||
<AssemblyVersion>5.3.0</AssemblyVersion>
|
||||
<IsPackable>false</IsPackable>
|
||||
<LangVersion>preview</LangVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
||||
@@ -4,21 +4,33 @@
|
||||
<OutputType>Library</OutputType>
|
||||
<TargetFramework>netstandard2.0</TargetFramework>
|
||||
<AssemblyTitle>coverlet.msbuild.tasks</AssemblyTitle>
|
||||
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
|
||||
<TargetsForTfmSpecificContentInPackage>$(TargetsForTfmSpecificContentInPackage);PackBuildOutputs</TargetsForTfmSpecificContentInPackage>
|
||||
<ContentTargetFolders>build</ContentTargetFolders>
|
||||
<IncludeBuildOutput>false</IncludeBuildOutput>
|
||||
<!--
|
||||
suppress warning https://docs.microsoft.com/en-us/nuget/reference/errors-and-warnings/nu5128
|
||||
If your package does not contain any lib/ or ref/ files and is not a meta-package,
|
||||
it likely does not have any dependencies that the package consumer needs.
|
||||
If you are packing with NuGet's MSBuild Pack target, you can set <SuppressDependenciesWhenPacking>true</SuppressDependenciesWhenPacking> in any PropertyGroup in your project file.
|
||||
-->
|
||||
<SuppressDependenciesWhenPacking>true</SuppressDependenciesWhenPacking>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- Nuget package properties https://docs.microsoft.com/en-us/nuget/reference/msbuild-targets -->
|
||||
<PropertyGroup>
|
||||
<PackageId>coverlet.msbuild</PackageId>
|
||||
<Title>coverlet.msbuild</Title>
|
||||
<Authors>tonerdo</Authors>
|
||||
<PackageLicenseExpression>MIT</PackageLicenseExpression>
|
||||
<PackageProjectUrl>http://github.com/tonerdo/coverlet</PackageProjectUrl>
|
||||
<PackageIconUrl>https://raw.githubusercontent.com/tonerdo/coverlet/master/_assets/coverlet-icon.svg?sanitize=true</PackageIconUrl>
|
||||
<PackageIcon>coverlet-icon.png</PackageIcon>
|
||||
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
|
||||
<DevelopmentDependency>true</DevelopmentDependency>
|
||||
<Description>Coverlet is a cross platform code coverage library for .NET, with support for line, branch and method coverage.</Description>
|
||||
<PackageTags>coverage testing unit-test lcov opencover quality</PackageTags>
|
||||
<RepositoryType>git</RepositoryType>
|
||||
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
|
||||
<TargetsForTfmSpecificContentInPackage>$(TargetsForTfmSpecificContentInPackage);PackBuildOutputs</TargetsForTfmSpecificContentInPackage>
|
||||
<ContentTargetFolders>build</ContentTargetFolders>
|
||||
<IncludeBuildOutput>false</IncludeBuildOutput>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
@@ -30,7 +42,7 @@
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Compile Include="..\coverlet.console\ConsoleTables\ConsoleTable.cs" Link="ConsoleTables\ConsoleTable.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)..\coverlet.console\ConsoleTables\ConsoleTable.cs" Link="ConsoleTables\ConsoleTable.cs" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
@@ -38,6 +50,10 @@
|
||||
<Content Include="coverlet.msbuild.targets" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<None Include="$(MSBuildThisFileDirectory)..\..\_assets\coverlet-icon.png" Pack="true" PackagePath="\" />
|
||||
</ItemGroup>
|
||||
|
||||
<Target Name="PackBuildOutputs" DependsOnTargets="ResolveProjectReferences;SatelliteDllsProjectOutputGroup;DebugSymbolsProjectOutputGroup;SatelliteDllsProjectOutputGroupDependencies;ResolveAssemblyReferences">
|
||||
<ItemGroup>
|
||||
<TfmSpecificPackageFile Include="$(TargetPath)" PackagePath="build\" />
|
||||
|
||||
@@ -2,9 +2,8 @@
|
||||
<Import Project="$(RepoRoot)src\coverlet.msbuild.tasks\coverlet.msbuild.props" />
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>netcoreapp2.2</TargetFramework>
|
||||
<TargetFramework>netcoreapp3.1</TargetFramework>
|
||||
<IsPackable>false</IsPackable>
|
||||
<LangVersion>preview</LangVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<Import Project="$(RepoRoot)src\coverlet.msbuild.tasks\coverlet.msbuild.props" />
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>netcoreapp2.0</TargetFramework>
|
||||
<TargetFramework>netcoreapp3.1</TargetFramework>
|
||||
<IsPackable>false</IsPackable>
|
||||
</PropertyGroup>
|
||||
|
||||
|
||||
@@ -346,7 +346,7 @@ namespace Coverlet.Core.Instrumentation.Tests
|
||||
[Fact]
|
||||
public void SkipEmbeddedPpdbWithoutLocalSource()
|
||||
{
|
||||
string xunitDll = Directory.GetFiles(Directory.GetCurrentDirectory(), "xunit.*.dll").First();
|
||||
string xunitDll = Directory.GetFiles(Directory.GetCurrentDirectory(), "xunit.core.dll").First();
|
||||
var loggerMock = new Mock<ILogger>();
|
||||
Instrumenter instrumenter = new Instrumenter(xunitDll, "_xunit_instrumented", Array.Empty<string>(), Array.Empty<string>(), Array.Empty<string>(), Array.Empty<string>(), false, loggerMock.Object, _instrumentationHelper, new FileSystem());
|
||||
Assert.True(_instrumentationHelper.HasPdb(xunitDll, out bool embedded));
|
||||
|
||||
@@ -2,9 +2,8 @@
|
||||
<Import Project="$(RepoRoot)src\coverlet.msbuild.tasks\coverlet.msbuild.props" />
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>netcoreapp2.2</TargetFramework>
|
||||
<TargetFramework>netcoreapp3.1</TargetFramework>
|
||||
<IsPackable>false</IsPackable>
|
||||
<LangVersion>preview</LangVersion>
|
||||
<NoWarn>$(NoWarn);CS8002</NoWarn>
|
||||
<!--For test TestInstrument_NetstandardAwareAssemblyResolver_PreserveCompilationContext-->
|
||||
<PreserveCompilationContext>true</PreserveCompilationContext>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>netcoreapp2.2</TargetFramework>
|
||||
<TargetFramework>netcoreapp3.1</TargetFramework>
|
||||
<IsPackable>false</IsPackable>
|
||||
<AssemblyName>coverletsamplelib.integration.template</AssemblyName>
|
||||
</PropertyGroup>
|
||||
|
||||
@@ -25,6 +25,12 @@ namespace Coverlet.Integration.Tests
|
||||
private BuildConfiguration GetAssemblyBuildConfiguration()
|
||||
{
|
||||
var configurationAttribute = Assembly.GetExecutingAssembly().GetCustomAttribute<AssemblyConfigurationAttribute>();
|
||||
|
||||
if (configurationAttribute is null)
|
||||
{
|
||||
throw new ArgumentNullException("AssemblyConfigurationAttribute not found");
|
||||
}
|
||||
|
||||
if (configurationAttribute.Configuration.Equals("Debug", StringComparison.InvariantCultureIgnoreCase))
|
||||
{
|
||||
return BuildConfiguration.Debug;
|
||||
@@ -260,6 +266,11 @@ namespace Coverlet.Integration.Tests
|
||||
|
||||
private protected void PinSDK(ClonedTemplateProject project, string sdkVersion)
|
||||
{
|
||||
if (project is null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(project));
|
||||
}
|
||||
|
||||
if (string.IsNullOrEmpty(sdkVersion))
|
||||
{
|
||||
throw new ArgumentException("Invalid sdkVersion", nameof(sdkVersion));
|
||||
@@ -270,15 +281,19 @@ namespace Coverlet.Integration.Tests
|
||||
throw new FileNotFoundException("coverlet.integration.template.csproj not found", "coverlet.integration.template.csproj");
|
||||
}
|
||||
|
||||
if (project.ProjectRootPath is null || !Directory.Exists(project.ProjectRootPath))
|
||||
{
|
||||
throw new ArgumentException("Invalid ProjectRootPath");
|
||||
}
|
||||
|
||||
File.WriteAllText(Path.Combine(project.ProjectRootPath, "global.json"), $"{{ \"sdk\": {{ \"version\": \"{sdkVersion}\" }} }}");
|
||||
}
|
||||
}
|
||||
|
||||
class ClonedTemplateProject : IDisposable
|
||||
{
|
||||
private bool _cleanupOnDispose;
|
||||
|
||||
public string? ProjectRootPath { get; private set; }
|
||||
public string ProjectRootPath { get; private set; }
|
||||
public bool CleanupOnDispose { get; private 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
|
||||
@@ -286,7 +301,11 @@ namespace Coverlet.Integration.Tests
|
||||
public static string ProjectFileName { get; } = "coverlet.integration.template.csproj";
|
||||
public string ProjectFileNamePath => Path.Combine(ProjectRootPath, "coverlet.integration.template.csproj");
|
||||
|
||||
public ClonedTemplateProject(string projectRootPath, bool cleanupOnDispose) => (ProjectRootPath, _cleanupOnDispose) = (projectRootPath, cleanupOnDispose);
|
||||
public ClonedTemplateProject(string? projectRootPath, bool cleanupOnDispose)
|
||||
{
|
||||
ProjectRootPath = (projectRootPath ?? throw new ArgumentNullException(nameof(projectRootPath)));
|
||||
CleanupOnDispose = cleanupOnDispose;
|
||||
}
|
||||
|
||||
public bool IsMultipleTargetFramework()
|
||||
{
|
||||
@@ -314,7 +333,7 @@ namespace Coverlet.Integration.Tests
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
if (_cleanupOnDispose)
|
||||
if (CleanupOnDispose)
|
||||
{
|
||||
Directory.Delete(ProjectRootPath, true);
|
||||
}
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>netcoreapp2.2</TargetFramework>
|
||||
<TargetFramework>netcoreapp3.1</TargetFramework>
|
||||
<IsPackable>false</IsPackable>
|
||||
<LangVersion>preview</LangVersion>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>netcoreapp2.2</TargetFramework>
|
||||
<TargetFramework>netcoreapp3.1</TargetFramework>
|
||||
<IsPackable>false</IsPackable>
|
||||
<IsTestProject>false</IsTestProject>
|
||||
</PropertyGroup>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>netcoreapp2.2</TargetFramework>
|
||||
<TargetFramework>netcoreapp3.1</TargetFramework>
|
||||
<RootNamespace>Coverlet.Tests.RemoteExecutor</RootNamespace>
|
||||
<IsPackable>false</IsPackable>
|
||||
<IsTestProject>false</IsTestProject>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>netcoreapp2.0</TargetFramework>
|
||||
<TargetFramework>netcoreapp3.1</TargetFramework>
|
||||
<IsPackable>false</IsPackable>
|
||||
<IsTestProject>false</IsTestProject>
|
||||
</PropertyGroup>
|
||||
|
||||
Reference in New Issue
Block a user