@@ -21,7 +21,7 @@ BuildParameters.Tasks.TestNUnitTask = Task("Test-NUnit")
21
21
Information ( "Running OpenCover and NUnit..." ) ;
22
22
23
23
OpenCover ( tool => {
24
- tool . NUnit3 ( GetFiles ( BuildParameters . Paths . Directories . PublishedNUnitTests + ( BuildParameters . TestFilePattern ?? "/**/*Tests .dll" ) ) , new NUnit3Settings {
24
+ tool . NUnit3 ( GetFiles ( BuildParameters . Paths . Directories . PublishedNUnitTests + ( BuildParameters . TestFilePattern ?? "/**/*[tT]ests .dll" ) ) , new NUnit3Settings {
25
25
Work = BuildParameters . Paths . Directories . NUnitTestResults
26
26
} ) ;
27
27
} ,
@@ -37,10 +37,10 @@ BuildParameters.Tasks.TestNUnitTask = Task("Test-NUnit")
37
37
}
38
38
else
39
39
{
40
- Information ( "Running OpenCover and NUnit..." ) ;
40
+ Information ( "Running NUnit..." ) ;
41
41
42
42
// OpenCover doesn't work on anything non-windows, so let's just run NUnit by itself
43
- NUnit3 ( GetFiles ( BuildParameters . Paths . Directories . PublishedNUnitTests + ( BuildParameters . TestFilePattern ?? "/**/*Tests .dll" ) ) , new NUnit3Settings {
43
+ NUnit3 ( GetFiles ( BuildParameters . Paths . Directories . PublishedNUnitTests + ( BuildParameters . TestFilePattern ?? "/**/*[tT]ests .dll" ) ) , new NUnit3Settings {
44
44
Work = BuildParameters . Paths . Directories . NUnitTestResults
45
45
} ) ;
46
46
}
@@ -51,14 +51,14 @@ BuildParameters.Tasks.TestxUnitTask = Task("Test-xUnit")
51
51
. IsDependentOn ( "Install-OpenCover" )
52
52
. WithCriteria ( ( ) => DirectoryExists ( BuildParameters . Paths . Directories . PublishedxUnitTests ) , "Skipping because there are no published xUnit tests" )
53
53
. Does ( ( ) => RequireTool ( ToolSettings . XUnitTool , ( ) => {
54
- EnsureDirectoryExists ( BuildParameters . Paths . Directories . xUnitTestResults ) ;
54
+ EnsureDirectoryExists ( BuildParameters . Paths . Directories . xUnitTestResults ) ;
55
55
56
56
if ( BuildParameters . BuildAgentOperatingSystem == PlatformFamily . Windows )
57
57
{
58
58
Information ( "Running OpenCover and xUnit..." ) ;
59
59
60
60
OpenCover ( tool => {
61
- tool . XUnit2 ( GetFiles ( BuildParameters . Paths . Directories . PublishedxUnitTests + ( BuildParameters . TestFilePattern ?? "/**/*Tests .dll" ) ) , new XUnit2Settings {
61
+ tool . XUnit2 ( GetFiles ( BuildParameters . Paths . Directories . PublishedxUnitTests + ( BuildParameters . TestFilePattern ?? "/**/*[tT]ests .dll" ) ) , new XUnit2Settings {
62
62
OutputDirectory = BuildParameters . Paths . Directories . xUnitTestResults ,
63
63
XmlReport = true ,
64
64
NoAppDomain = true
@@ -79,7 +79,7 @@ BuildParameters.Tasks.TestxUnitTask = Task("Test-xUnit")
79
79
Information ( "Running xUnit..." ) ;
80
80
81
81
// OpenCover doesn't work on anything non-windows, so let's just run xUnit by itself
82
- XUnit2 ( GetFiles ( BuildParameters . Paths . Directories . PublishedxUnitTests + ( BuildParameters . TestFilePattern ?? "/**/*Tests .dll" ) ) , new XUnit2Settings {
82
+ XUnit2 ( GetFiles ( BuildParameters . Paths . Directories . PublishedxUnitTests + ( BuildParameters . TestFilePattern ?? "/**/*[tT]ests .dll" ) ) , new XUnit2Settings {
83
83
OutputDirectory = BuildParameters . Paths . Directories . xUnitTestResults ,
84
84
XmlReport = true ,
85
85
NoAppDomain = true
@@ -214,6 +214,13 @@ BuildParameters.Tasks.GenerateFriendlyTestReportTask = Task("Generate-FriendlyTe
214
214
foreach ( var directory in possibleDirectories . Where ( ( d ) => DirectoryExists ( d ) ) )
215
215
{
216
216
ReportUnit ( directory , directory , new ReportUnitSettings ( ) ) ;
217
+
218
+ var reportUnitFiles = GetFiles ( directory + "/*.html" ) ;
219
+ var reportUnitZipFileName = directory . FullPath . Contains ( "xunit" ) ? "xunit-reportunit.zip" : "nunit-reportunit.zip" ;
220
+ var rootPath = directory . FullPath . Contains ( "xunit" ) ? "./code_drop/TestResults/xUnit" : "./code_drop/TestResults/NUnit" ;
221
+ Zip ( rootPath , directory + "/" + reportUnitZipFileName , reportUnitFiles ) ;
222
+
223
+ BuildParameters . BuildProvider . UploadArtifact ( directory + "/" + reportUnitZipFileName ) ;
217
224
}
218
225
} )
219
226
) ;
@@ -256,8 +263,6 @@ BuildParameters.Tasks.ReportCodeCoverageMetricsTask = Task("Report-Code-Coverage
256
263
257
264
foreach ( var coverageFile in coverageFiles )
258
265
{
259
- BuildParameters . BuildProvider . UploadArtifact ( coverageFile ) ;
260
-
261
266
XDocument doc = XDocument . Load ( coverageFile . FullPath ) ;
262
267
XElement summary = doc . XPathSelectElement ( "/CoverageSession/Summary" ) ;
263
268
@@ -318,8 +323,7 @@ private void ReportCoverageMetric(
318
323
Information ( $ "##teamcity[buildStatisticValue key='{ tcCoverageKey } ' value='{ coverage } ']") ;
319
324
}
320
325
321
- BuildParameters . Tasks . GenerateLocalCoverageReportTask = Task ( "Generate-LocalCoverageReport" )
322
- . WithCriteria ( ( ) => BuildParameters . IsLocalBuild , "Skipping due to not running a local build" )
326
+ BuildParameters . Tasks . GenerateLocalCoverageReportTask = Task ( "Generate-FriendlyCoverageReport" )
323
327
. Does ( ( ) => RequireTool ( BuildParameters . IsDotNetCoreBuild || BuildParameters . PreferDotNetGlobalToolUsage ? ToolSettings . ReportGeneratorGlobalTool : ToolSettings . ReportGeneratorTool , ( ) => {
324
328
var coverageFiles = GetFiles ( BuildParameters . Paths . Directories . TestCoverage + "/coverlet/*.xml" ) ;
325
329
if ( FileExists ( BuildParameters . Paths . Files . TestCoverageOutputFilePath ) )
@@ -338,6 +342,17 @@ BuildParameters.Tasks.GenerateLocalCoverageReportTask = Task("Generate-LocalCove
338
342
}
339
343
340
344
ReportGenerator ( coverageFiles , BuildParameters . Paths . Directories . TestCoverage , settings ) ;
345
+
346
+ var reportGeneratorFiles = GetFiles ( BuildParameters . Paths . Directories . TestCoverage + "/*.html" )
347
+ + GetFiles ( BuildParameters . Paths . Directories . TestCoverage + "/*.htm" )
348
+ + GetFiles ( BuildParameters . Paths . Directories . TestCoverage + "/*.js" )
349
+ + GetFiles ( BuildParameters . Paths . Directories . TestCoverage + "/*.svg" )
350
+ + GetFiles ( BuildParameters . Paths . Directories . TestCoverage + "/*.css" ) ;
351
+
352
+ var reportGeneratorZipFileName = "coverage.zip" ;
353
+ Zip ( "./code_drop/TestCoverage" , BuildParameters . Paths . Directories . TestCoverage + "/" + reportGeneratorZipFileName , reportGeneratorFiles ) ;
354
+
355
+ BuildParameters . BuildProvider . UploadArtifact ( BuildParameters . Paths . Directories . TestCoverage + "/" + reportGeneratorZipFileName ) ;
341
356
}
342
357
else
343
358
{
@@ -372,4 +387,31 @@ BuildParameters.Tasks.GenerateLocalCoverageReportTask = Task("Convert-OpenCoverT
372
387
} )
373
388
) ;
374
389
375
- BuildParameters . Tasks . TestTask = Task ( "Test" ) ;
390
+ BuildParameters . Tasks . TestTask = Task ( "Test" )
391
+ . Does ( ( ) => {
392
+ var coverageFiles = GetFiles ( BuildParameters . Paths . Directories . TestCoverage + "/coverlet/*.xml" ) ;
393
+ if ( FileExists ( BuildParameters . Paths . Files . TestCoverageOutputFilePath ) )
394
+ {
395
+ coverageFiles += BuildParameters . Paths . Files . TestCoverageOutputFilePath ;
396
+ }
397
+
398
+ foreach ( var coverageFile in coverageFiles )
399
+ {
400
+ BuildParameters . BuildProvider . UploadArtifact ( coverageFile ) ;
401
+ }
402
+
403
+ foreach ( var nUnitResultFile in GetFiles ( BuildParameters . Paths . Directories . NUnitTestResults + "/*.xml" ) )
404
+ {
405
+ BuildParameters . BuildProvider . UploadArtifact ( nUnitResultFile ) ;
406
+ }
407
+
408
+ foreach ( var xUnitResultFile in GetFiles ( BuildParameters . Paths . Directories . xUnitTestResults + "/*.xml" ) )
409
+ {
410
+ BuildParameters . BuildProvider . UploadArtifact ( xUnitResultFile ) ;
411
+ }
412
+
413
+ if ( FileExists ( BuildParameters . Paths . Directories . TestCoverage + "/lcov.info" ) )
414
+ {
415
+ BuildParameters . BuildProvider . UploadArtifact ( BuildParameters . Paths . Directories . TestCoverage + "/lcov.info" ) ;
416
+ }
417
+ } ) ;
0 commit comments