Skip to content

Commit 7fb47a6

Browse files
Reamed the OutputReport method to WriteContents to match the action it is performing as FileWriter
Fixed and issue when batch remaning processors wont execute if any one fails
1 parent 76fb85e commit 7fb47a6

13 files changed

Lines changed: 37 additions & 22 deletions

File tree

src/TestStack.BDDfy.Tests/Configuration/BatchProcessorsTests.cs

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -103,12 +103,9 @@ public void ReturnsAdditionalBatchProcessorsWhenAdded()
103103
processors.ShouldContain(p => p is FooBatchProcessor, 1);
104104
}
105105

106-
private class FooBatchProcessor : IBatchProcessor
106+
private class FooBatchProcessor: IBatchProcessor
107107
{
108-
public void Process(IEnumerable<Story> stories)
109-
{
110-
throw new System.NotImplementedException();
111-
}
108+
public void Process(IEnumerable<Story> stories) { }
112109
}
113110
}
114111
}

src/TestStack.BDDfy.Tests/FileWriterShould.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public void CreatePathIfItDoesNotExist(string reportName, string? outputDirector
1818
{
1919
var fileWriter = new FileWriter();
2020
outputDirectory = outputDirectory is null ? null : System.IO.Path.Combine(System.IO.Path.GetTempPath(), Guid.NewGuid().ToString(), $"{outputDirectory}");
21-
fileWriter.OutputReport("Test content", reportName, outputDirectory);
21+
fileWriter.WriteContents("Test content", reportName, outputDirectory);
2222
var expectedPath = System.IO.Path.Combine(outputDirectory ?? string.Empty, reportName);
2323
System.IO.File.Exists(expectedPath).ShouldBeTrue();
2424
System.IO.File.ReadAllText(expectedPath).ShouldBe("Test content");

src/TestStack.BDDfy.Tests/Reporters/Diagnostics/DiagnosticsReporterTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ public void ShouldCreateReportIfProcessingSucceeds()
2020

2121
sut.Process([]);
2222

23-
_writer.Received().OutputReport("Report Data", Arg.Any<string>(), Arg.Any<string>());
23+
_writer.Received().WriteContents("Report Data", Arg.Any<string>(), Arg.Any<string>());
2424
}
2525

2626
[Fact]
@@ -31,7 +31,7 @@ public void ShouldPrintErrorInReportIfProcessingFails()
3131

3232
sut.Process([]);
3333

34-
_writer.Received().OutputReport(
34+
_writer.Received().WriteContents(
3535
Arg.Is<string>(s => s.StartsWith("Error occurred.")),
3636
Arg.Any<string>(),
3737
Arg.Any<string>());

src/TestStack.BDDfy.Tests/Reporters/Html/HtmlReporterTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ public void ShouldCreateReportIfProcessingSucceeds()
3535

3636
_sut.Process([]);
3737

38-
_sut.Configuration.FileWriter.Received().OutputReport(ReportData, Arg.Any<string>(), Arg.Any<string>());
38+
_sut.Configuration.FileWriter.Received().WriteContents(ReportData, Arg.Any<string>(), Arg.Any<string>());
3939
}
4040

4141
[Fact]
@@ -45,7 +45,7 @@ public void ShouldPrintErrorInReportIfProcessingFails()
4545

4646
_sut.Process(new ReportTestData().CreateTwoStoriesEachWithOneFailingScenarioAndOnePassingScenarioWithThreeStepsOfFiveMilliseconds());
4747

48-
_sut.Configuration.FileWriter.Received().OutputReport(
48+
_sut.Configuration.FileWriter.Received().WriteContents(
4949
Arg.Is<string>(s => s.StartsWith(ErrorMessage)),
5050
Arg.Any<string>(),
5151
Arg.Any<string>());

src/TestStack.BDDfy.Tests/Reporters/MarkDown/MarkDownReporterTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public void ShouldCreateReportIfProcessingSucceeds()
2121

2222
sut.Process([]);
2323

24-
_writer.Received().OutputReport("Report Data", Arg.Any<string>(), Arg.Any<string>());
24+
_writer.Received().WriteContents("Report Data", Arg.Any<string>(), Arg.Any<string>());
2525
}
2626

2727
[Fact]
@@ -32,7 +32,7 @@ public void ShouldPrintErrorInReportIfProcessingFails()
3232

3333
sut.Process([]);
3434

35-
_writer.Received().OutputReport(
35+
_writer.Received().WriteContents(
3636
Arg.Is<string>(s => s.StartsWith("Error occurred.")),
3737
Arg.Any<string>(),
3838
Arg.Any<string>());

src/TestStack.BDDfy.Tests/Scanner/FluentScanner/AmbiguousHeaderMatchTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public void ThrowsWhenMultipleHeadersMatchParameterName()
2222
.BDDfy();
2323
});
2424

25-
exception.Message.ShouldBe("More than one headers for examples, match the parameter 'count' provided for 'GivenInput'");
25+
exception.Message.ShouldBe("Duplicate headers detected. count, Count");
2626
}
2727

2828
private void GivenInput(int count)

src/TestStack.BDDfy/Engine.cs

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1-
using TestStack.BDDfy.Configuration;
1+
using System.Text;
2+
using TestStack.BDDfy.Configuration;
23
using TestStack.BDDfy.Processors;
4+
using TestStack.BDDfy.Reporters.Writers;
35

46
namespace TestStack.BDDfy
57
{
@@ -15,9 +17,19 @@ static Engine()
1517

1618
static void InvokeBatchProcessors()
1719
{
20+
var finalErrors = new StringBuilder();
1821
foreach (var batchProcessor in Configurator.BatchProcessors.GetProcessors())
1922
{
20-
batchProcessor.Process(StoryCache.Stories);
23+
try { batchProcessor.Process(StoryCache.Stories); }
24+
catch (Exception ex)
25+
{
26+
finalErrors.AppendLine($"Error processing batch processor {batchProcessor.GetType().FullName}: {ex}");
27+
}
28+
}
29+
30+
if (finalErrors.Length > 0)
31+
{
32+
FileWriter.Singleton.WriteContents(finalErrors.ToString(), "errors.log");
2133
}
2234
}
2335

src/TestStack.BDDfy/Reporters/Diagnostics/GenericReporter.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public virtual void Process(IEnumerable<Story> stories)
2121
report = ex.Message + ex.StackTrace;
2222
}
2323

24-
_configuration.FileWriter.OutputReport(report, _configuration.OutputFileName);
24+
_configuration.FileWriter.WriteContents(report, _configuration.OutputFileName);
2525
}
2626
}
2727
}

src/TestStack.BDDfy/Reporters/Diagnostics/JsonDataFileReporter.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public void Process(IEnumerable<Story> stories)
2222
filename = filename.Replace(".json", ".js");
2323
}
2424

25-
reportConfiguration.FileWriter.OutputReport(content, filename);
25+
reportConfiguration.FileWriter.WriteContents(content, filename);
2626
}
2727

2828
private static ReportConfiguration DefaultReportConfiguration => new(DefaultOutputFileName);

src/TestStack.BDDfy/Reporters/Html/HtmlReporter.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ void WriteOutHtmlReport()
2929
report = ex.Message + ex.StackTrace;
3030
}
3131

32-
Configuration.FileWriter.OutputReport(report, Configuration.OutputFileName, Configuration.OutputPath);
32+
Configuration.FileWriter.WriteContents(report, Configuration.OutputFileName, Configuration.OutputPath);
3333
}
3434

3535
private void LoadCustomScripts()

0 commit comments

Comments
 (0)