forked from dotnet/Open-XML-SDK
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTests.targets
124 lines (102 loc) · 5.6 KB
/
Tests.targets
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
<Project>
<Choose>
<When Condition="$(IsTestProject)">
<PropertyGroup >
<TestArchitecture Condition="'$(TestArchitecture)' == ''">x64</TestArchitecture>
<_TestTargetName Condition="'$(TargetFrameworks)' == ''">InnerTest</_TestTargetName>
<_TestTargetName Condition="'$(TargetFrameworks)' != ''">OuterTest</_TestTargetName>
<TestLogger Condition=" '$(TestLogger)' == '' ">trx</TestLogger>
</PropertyGroup>
<Choose>
<When Condition="$(TargetFramework.StartsWith('netcoreapp'))">
<PropertyGroup>
<TestExe>dotnet.exe</TestExe>
<TestArgs>vstest /Framework:FrameworkCore10</TestArgs>
</PropertyGroup>
</When>
<Otherwise>
<PropertyGroup>
<TestExe>vstest.console.exe</TestExe>
<TestArgs>/Framework:Framework45</TestArgs>
</PropertyGroup>
</Otherwise>
</Choose>
<ItemGroup>
<PackageReference Include="System.ValueTuple" Version="4.4.0" />
<PackageReference Include="OpenCover" Version="4.6.519" Condition="$(EnableCodeCoverage)" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.9.0" />
<PackageReference Include="Newtonsoft.Json" Version="12.0.1" />
<PackageReference Include="NSubstitute" Version="3.1.0" />
<PackageReference Include="xunit" Version="2.4.1" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.1">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
</ItemGroup>
<ItemGroup Condition="$(TargetFramework.StartsWith('netcoreapp1.'))">
<PackageReference Include="System.Xml.ReaderWriter" Version="4.3.1" />
<PackageReference Include="System.Xml.XmlDocument" Version="4.3.0" />
<PackageReference Include="System.Reflection.Extensions" Version="4.3.0" />
<PackageReference Include="System.Runtime.Extensions" Version="4.3.0" />
</ItemGroup>
<ItemGroup Condition=" '$(TargetFramework)' == 'net46' ">
<Reference Include="System" />
<Reference Include="Microsoft.CSharp" />
</ItemGroup>
<ItemGroup Condition=" '$(TargetFramework)' == 'net452' ">
<Reference Include="System" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="WindowsBase" />
</ItemGroup>
</When>
</Choose>
<!-- An empty target so that we can run /t:test at the solution level and skip all non-tests -->
<Target Name="Test">
<Message Text="No tests available as this is not a test project. Please mark test projects with IsTestProject=true to enable test run." />
</Target>
<Target Name="Test" DependsOnTargets="$(_TestTargetName)" Condition="$(IsTestProject)" />
<Target Name="InnerTest" Condition="$(IsTestProject)">
<PropertyGroup>
<_TestLogPath>$(OutputPath)\test_log.txt</_TestLogPath>
<TestArgs>$(TestArgs) /Logger:$(TestLogger) $(TargetPath) /Platform:$(TestArchitecture)</TestArgs>
<TestCommand>$(TestExe) $(TestArgs)</TestCommand>
</PropertyGroup>
<PropertyGroup Condition="$(EnableCodeCoverage)">
<CoverageOutput>$(OutputPath)\coverage.xml</CoverageOutput>
<OpenCoverExe>$(NuGetPackageRoot)\OpenCover\4.6.519\tools\OpenCover.Console.exe</OpenCoverExe>
<InstrumentationStyle Condition=" '$(TargetFramework)' == 'netcoreapp1.0' ">-oldStyle</InstrumentationStyle>
<TestCommand>"$(OpenCoverExe)" -register:user -target:"$(TestExe)" $(InstrumentationStyle) -targetargs:"$(TestArgs)" -threshold:1 -output:"$(CoverageOutput)" -filter:"+[DocumentFormat.OpenXml]*"</TestCommand>
</PropertyGroup>
<Error Message="Could not find OpenCover" Condition="!Exists($(OpenCoverExe)) AND $(EnableCodeCoverage)" />
<Delete Files="$(_TestLogPath)" />
<MakeDir Directories="$(ArtifactsTestResultsDir)"/>
<Exec Command='$(TestCommand) > $(_TestLogPath)'
LogStandardErrorAsError="true"
WorkingDirectory="$(OutputPath)"
IgnoreExitCode="true">
<Output TaskParameter="ExitCode" PropertyName="ExitCode" />
</Exec>
<Message Text="Test succeeded: $(MSBuildProjectName) [$(TargetFramework)|%(_TestArchitectureItems.Identity)]" Condition="'$(ExitCode)' == '0'" />
<Error Text="Test failed with exit code: $(ExitCode); log: $(_TestLogPath)" Condition="'$(ExitCode)' != '0'" />
</Target>
<Target Name="UploadCodeCoverageReport" AfterTargets="InnerTest" Condition="$(EnableCodeCoverage)">
<PropertyGroup>
<CodeCov>codecov</CodeCov>
<CodeCovTokenParam Condition=" '$(CodeCovToken)' != '' ">-t $(CodeCovToken)</CodeCovTokenParam>
</PropertyGroup>
<Exec Command='"$(CodeCov)" -f "$(CoverageOutput)" $(CodeCovTokenParam) --required --name $(TargetFramework)'
LogStandardErrorAsError="true"
WorkingDirectory="$(OutputPath)"
IgnoreExitCode="true">
<Output TaskParameter="ExitCode" PropertyName="ExitCode" />
</Exec>
<Message Text="Coverage file uploaded: $(MSBuildProjectName) [$(TargetFramework)|%(_TestArchitectureItems.Identity)]" Condition="'$(ExitCode)' == '0'" />
<Error Text="Coverage file upload failed with exit code: $(ExitCode)" Condition="'$(ExitCode)' != '0'" />
</Target>
<Target Name="OuterTest" DependsOnTargets="_SetTestInnerTarget;DispatchToInnerBuilds" Condition="$(IsTestProject)"/>
<Target Name="_SetTestInnerTarget" Returns="@(InnerOutput)" Condition="$(IsTestProject)">
<PropertyGroup Condition="'$(InnerTargets)' == ''">
<InnerTargets>InnerTest</InnerTargets>
</PropertyGroup>
</Target>
</Project>