diff --git a/src/NBench.Tests.End2End/NBenchIntregrationTest.cs b/src/NBench.Tests.End2End/NBenchIntregrationTest.cs
index 1c5140ea..bc04d9ea 100644
--- a/src/NBench.Tests.End2End/NBenchIntregrationTest.cs
+++ b/src/NBench.Tests.End2End/NBenchIntregrationTest.cs
@@ -1,6 +1,7 @@
// Copyright (c) Petabridge . All rights reserved.
// Licensed under the Apache 2.0 license. See LICENSE file in the project root for full license information.
+using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
@@ -99,6 +100,19 @@ public void RunnerExcludePattern()
result.IgnoredTestsCount.Should().NotBe(0);
}
+ [Fact]
+ public void RunnerShouldIncludeAdditionalOutputTargets()
+ {
+ var testOutput = new TestBenchmarkOutput();
+
+ var package = LoadPackage();
+ package.Tracing = true;
+ package.AddOutput(testOutput);
+
+ TestRunner.Run(package);
+ testOutput.AdditionalOutputWasIncluded.Should().BeTrue("Expected inclusion of additional benchmark output, but was ignored.");
+ }
+
private static TestPackage LoadPackage(IEnumerable include = null, IEnumerable exclude = null)
{
var package = NBenchRunner.CreateTest();
@@ -117,6 +131,23 @@ private static TestPackage LoadPackage(IEnumerable include = null, IEnum
return package;
}
+
+ private class TestBenchmarkOutput : IBenchmarkOutput
+ {
+ public bool AdditionalOutputWasIncluded { get; set; } = false;
+
+ public TestBenchmarkOutput() { }
+
+ public void Error(Exception ex, string message) => AdditionalOutputWasIncluded = true;
+ public void Error(string message) => AdditionalOutputWasIncluded = true;
+ public void FinishBenchmark(string benchmarkName) => AdditionalOutputWasIncluded = true;
+ public void SkipBenchmark(string benchmarkName) => AdditionalOutputWasIncluded = true;
+ public void StartBenchmark(string benchmarkName) => AdditionalOutputWasIncluded = true;
+ public void Warning(string message) => AdditionalOutputWasIncluded = true;
+ public void WriteBenchmark(BenchmarkFinalResults results) => AdditionalOutputWasIncluded = true;
+ public void WriteLine(string message) => AdditionalOutputWasIncluded = true;
+ public void WriteRun(BenchmarkRunReport report, bool isWarmup = false) => AdditionalOutputWasIncluded = true;
+ }
}
}
diff --git a/src/NBench/Sdk/TestRunner.cs b/src/NBench/Sdk/TestRunner.cs
index 67e2cde2..5b7817c3 100644
--- a/src/NBench/Sdk/TestRunner.cs
+++ b/src/NBench/Sdk/TestRunner.cs
@@ -179,6 +179,8 @@ protected virtual IBenchmarkOutput CreateOutput()
outputs.Add(new MarkdownBenchmarkOutput(_package.OutputDirectory));
}
+ outputs.AddRange(_package.OutputTargets);
+
return new CompositeBenchmarkOutput(outputs.ToArray());
}
}