Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
a8057d9
feat: added tests for legacy parameter syntax
flaviolazzarini Jun 16, 2026
b229df5
feat: moved UseLegacySyntax property to DotCoverCoverSettings
flaviolazzarini Jun 16, 2026
2605cfb
fix: removed legacy parameters from new GetCoverCoverageArguments fnc
flaviolazzarini Jun 16, 2026
8e770b6
feat: implemented new parameter syntax in DotCoverMerger
flaviolazzarini Jun 17, 2026
21534db
feat: merge output param is optional for new param syntax
flaviolazzarini Jun 17, 2026
09aef54
feat: Added possibility to merge without specified outputfile
flaviolazzarini Jun 17, 2026
8a4e1bc
feat: implemented new parameter syntax in DotCoverReporter
flaviolazzarini Jun 17, 2026
381c835
feat: fix lint errors
flaviolazzarini Jun 17, 2026
b4d435e
feat: added tests for legacy parameter syntax
flaviolazzarini Jun 16, 2026
36c068c
feat: moved UseLegacySyntax property to DotCoverCoverSettings
flaviolazzarini Jun 16, 2026
f8bf9e2
fix: removed legacy parameters from new GetCoverCoverageArguments fnc
flaviolazzarini Jun 16, 2026
f3f3d5e
feat: implemented new parameter syntax in DotCoverMerger
flaviolazzarini Jun 17, 2026
286d468
feat: merge output param is optional for new param syntax
flaviolazzarini Jun 17, 2026
83218d5
feat: Added possibility to merge without specified outputfile
flaviolazzarini Jun 17, 2026
12ba348
feat: implemented new parameter syntax in DotCoverReporter
flaviolazzarini Jun 17, 2026
8182caa
feat: fix lint errors
flaviolazzarini Jun 17, 2026
3f17dad
Merge remote-tracking branch 'origin/feature/fix-dot-cover-tool' into…
flaviolazzarini Aug 11, 2026
76915aa
feat: DotCoverReport do not ignore outputFile in new syntax
flaviolazzarini Aug 11, 2026
941358c
feat: warning when legacy filters are dropped in new DotCover format
flaviolazzarini Aug 11, 2026
e77b2bb
feat: changed dotcover report examples to XML rather then HTML
flaviolazzarini Aug 11, 2026
0863ad0
feat: fixed typos and added overload for DotCoverMerge alias
flaviolazzarini Aug 11, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -241,6 +241,7 @@ public void Should_Append_LogFile()
// Given
var fixture = new DotCoverAnalyserFixture();
fixture.Settings.LogFile = "./logfile.log";
fixture.Settings.UseLegacySyntax = true;

// When
var result = fixture.Run();
Expand Down
277 changes: 252 additions & 25 deletions src/Cake.Common.Tests/Unit/Tools/DotCover/Cover/DotCoverCovererTests.cs

Large diffs are not rendered by default.

113 changes: 102 additions & 11 deletions src/Cake.Common.Tests/Unit/Tools/DotCover/Merge/DotCoverMergerTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
using Cake.Common.Tools.DotCover;
using Cake.Core.IO;
using Xunit;

namespace Cake.Common.Tests.Unit.Tools.DotCover.Merge
{
public sealed class DotCoverMergerTests
Expand Down Expand Up @@ -43,31 +42,83 @@ public void Should_Throw_If_Source_Files_Is_Empty()
}

[Fact]
public void Should_Throw_If_Output_File_Is_Null()
public void Should_Throw_If_Settings_Are_Null()
{
// Given
var fixture = new DotCoverMergerFixture();
fixture.OutputFile = null;
fixture.Settings = null;

// When
var result = Record.Exception(() => fixture.Run());

// Then
AssertEx.IsArgumentNullException(result, "outputFile");
AssertEx.IsArgumentNullException(result, "settings");
}

#region New Parameter Syntax

[Fact]
public void Should_Throw_If_Settings_Are_Null()
public void Should_Ignore_Output_If_Not_Set()
{
// Given
var fixture = new DotCoverMergerFixture();
fixture.Settings = null;
fixture.SourceFiles = new List<FilePath> { new ("/Working/result1.dcvr"), new ("/Working/result2.dcvr") };
fixture.OutputFile = null;
// When
var result = fixture.Run();

// Then
Assert.Equal("merge " +
"--snapshot-source \"/Working/result1.dcvr,/Working/result2.dcvr\"", result.Args);
}

[Fact]
public void Should_Set_Correct_Arguments()
{
// Given
var fixture = new DotCoverMergerFixture();
fixture.SourceFiles = new List<FilePath> { new ("/Working/result1.dcvr"), new ("/Working/result2.dcvr") };
fixture.OutputFile = new FilePath("/Working/output.dcvr");
// When
var result = fixture.Run();

// Then
Assert.Equal("merge " +
"--snapshot-source \"/Working/result1.dcvr,/Working/result2.dcvr\" " +
"--snapshot-output \"/Working/output.dcvr\"", result.Args);
}

[Fact]
public void Should_Append_TemporaryDirectory()
{
// Given
var fixture = new DotCoverMergerFixture();
fixture.Settings.TemporaryDirectory = new DirectoryPath("/Working/temp");

// When
var result = Record.Exception(() => fixture.Run());
var result = fixture.Run();

// Then
AssertEx.IsArgumentNullException(result, "settings");
Assert.Equal("merge " +
"--snapshot-source \"/Working/result1.dcvr,/Working/result2.dcvr\" " +
"--snapshot-output \"/Working/result.dcvr\" " +
"--temporary-directory \"/Working/temp\"", result.Args);
}

[Fact]
public void Should_Not_Append_Null_TemporaryDirectory()
{
// Given
var fixture = new DotCoverMergerFixture();
fixture.Settings.TemporaryDirectory = null;

// When
var result = fixture.Run();

// Then
Assert.Equal("merge " +
"--snapshot-source \"/Working/result1.dcvr,/Working/result2.dcvr\" " +
"--snapshot-output \"/Working/result.dcvr\"", result.Args);
}

[Fact]
Expand All @@ -81,27 +132,67 @@ public void Should_Append_LogFile()
var result = fixture.Run();

// Then
Assert.Equal("Merge " +
Assert.Equal("merge " +
"--snapshot-source \"/Working/result1.dcvr,/Working/result2.dcvr\" " +
"--snapshot-output \"/Working/result.dcvr\" " +
"--log-file \"/Working/logfile.log\"", result.Args);
}

#endregion

#region Legacy Parameter Syntax

[Fact]
public void Should_Append_LogFile_LegacySyntax()
{
// Given
var fixture = new DotCoverMergerFixture();
fixture.Settings.LogFile = "./logfile.log";
fixture.Settings.UseLegacySyntax = true;

// When
var result = fixture.Run();

// Then
Assert.Equal("merge " +
"/Source=\"/Working/result1.dcvr;/Working/result2.dcvr\" " +
"/Output=\"/Working/result.dcvr\" " +
"/LogFile=\"/Working/logfile.log\"", result.Args);
}

[Fact]
public void Should_Append_ConfigurationFile()
public void Should_Append_ConfigurationFile_LegacySyntax()
{
// Given
var fixture = new DotCoverMergerFixture();
fixture.Settings.WithConfigFile(new FilePath("./config.xml"));
fixture.Settings.UseLegacySyntax = true;

// When
var result = fixture.Run();

// Then
Assert.Equal("Merge \"/Working/config.xml\" " +
Assert.Equal("merge \"/Working/config.xml\" " +
"/Source=\"/Working/result1.dcvr;/Working/result2.dcvr\" " +
"/Output=\"/Working/result.dcvr\"", result.Args);
}

[Fact]
public void Should_Throw_If_Output_File_Is_Null_LegacySyntax()
{
// Given
var fixture = new DotCoverMergerFixture();
fixture.OutputFile = null;
fixture.Settings.UseLegacySyntax = true;

// When
var result = Record.Exception(() => fixture.Run());

// Then
AssertEx.IsArgumentNullException(result, "outputFile");
}

#endregion
}
}
}
Loading