Skip to content

Commit 937e75c

Browse files
author
Jake Ginnivan
committed
Tags support in html reports and markdown report
1 parent 3e5b1ab commit 937e75c

20 files changed

Lines changed: 362 additions & 13 deletions

TestStack.BDDfy.Tests/Configuration/BatchProcessorsTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ public void ReturnsMarkdownReporterWhenItIsActivated()
6060
[Test]
6161
public void ReturnsHtmlMetroReporterWhenItIsActivated()
6262
{
63-
Configurator.BatchProcessors.HtmlMetroReport.Enable();
63+
Configurator.BatchProcessors.HtmlMetroReport.Enable();
6464

6565
var processors = Configurator.BatchProcessors.GetProcessors().ToList();
6666
Assert.IsTrue(processors.Any(MetroReportProcessorIsActive), "The metro Html report was not found in batch processors");
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<Weavers>
3+
<ModuleInit />
4+
</Weavers>
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
using TestStack.BDDfy.Configuration;
2+
3+
/// <summary>
4+
/// Used by the ModuleInit. All code inside the Initialize method is ran as soon as the assembly is loaded.
5+
/// </summary>
6+
public static class ModuleInitializer
7+
{
8+
/// <summary>
9+
/// Initializes the module.
10+
/// </summary>
11+
public static void Initialize()
12+
{
13+
// Uncomment to enable different reporters
14+
//Configurator.BatchProcessors.HtmlMetroReport.Enable();
15+
//Configurator.BatchProcessors.MarkDownReport.Enable();
16+
}
17+
}

TestStack.BDDfy.Tests/Reporters/Html/ClassicReportBuilderTests.ShouldProduceExpectedHtml.approved.txt

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

TestStack.BDDfy.Tests/Reporters/Html/ClassicReportBuilderTests.ShouldProduceExpectedHtmlWithExamples.approved.txt

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

TestStack.BDDfy.Tests/Reporters/Html/MetroReportBuilderTests.ShouldProduceExpectedHtml.approved.txt

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

TestStack.BDDfy.Tests/Reporters/Html/MetroReportBuilderTests.ShouldProduceExpectedHtmlWithExamples.approved.txt

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.
Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<meta charset='utf-8'/>
5+
<style type='text/css'>
6+
body{margin:0;padding:0;padding-bottom:40px;max-width:100%;background-color:#fff;font-size:10pt;font-family:Verdana,Arial,Helvetica,sans-serif}ul{margin:5px;padding:5px;border:1px solid #d0d0d0;-ms-border-radius:10px;border-radius:10px;background-color:#f0f0f0}li{list-style-type:none}#main{width:100%;height:100%}.header,.footer{background:#679bdb;background:-moz-linear-gradient(top,#679bdb 1%,#3b77a5 100%);background:-ms-linear-gradient(top,#679bdb 1%,#3b77a5 100%);background:-o-linear-gradient(top,#679bdb 1%,#3b77a5 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(1%,#679bdb),color-stop(100%,#3b77a5));background:-webkit-linear-gradient(top,#679bdb 1%,#3b77a5 100%);background:linear-gradient(top,#679bdb 1%,#3b77a5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#679bdb',endColorstr='#3b77a5',GradientType=0)}.header{padding:10px;height:57px;border-bottom:2px solid #fff;vertical-align:middle}.footer{position:fixed;bottom:0;display:block;width:100%;height:40px;color:#fff;text-align:center;line-height:40px}.footer a{color:#fff}.footer a:hover{color:#3865c6}#BDDfyTitle{color:#fff;-ms-text-shadow:#262f57 1px 1px 3px;text-shadow:#262f57 1px 1px 3px;font-weight:bold;font-size:20pt;font-family:Trebuchet MS}#BDDfyDescription{color:#fff;color:#fff;-ms-text-shadow:#262f57 1px 1px 3px;text-shadow:#262f57 1px 1px 3px;font-size:large}.summary{display:inline-block;margin:10px 5px 0}.summaryLine{display:inline-block}.summary li{padding:0 5px}h3{margin:5px;margin-top:10px;color:#2b547d}.summaryLabel{float:left;width:140px}.resultSummary{display:inline-block;width:250px}.resultSummary li:before{float:left;padding-right:5px}.storySummary div.summaryLine,.scenarioSummary div.summaryLine{margin-left:20px}div#generatedAt{color:#229;font-size:12pt;font-family:Cambria}.testResult{margin:20px 0;border:none;background-color:transparent;color:#2b547d}#testResult{padding:5px}#testResult p{color:#2b547d;font-weight:bold;font-size:12pt}#testResult span{margin-left:5px;font-size:10pt}#detailsLable{float:left}#expandCollapse{float:right;margin:15px}.expandAll,.collapseAll{border-bottom-width:1px;border-bottom-style:dotted;border-bottom-color:#9cf;text-decoration:none}.Passed:before{content:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAKfSURBVDjLpZPrS1NhHMf9O3bOdmwDCWREIYKEUHsVJBI7mg3FvCxL09290jZj2EyLMnJexkgpLbPUanNOberU5taUMnHZUULMvelCtWF0sW/n7MVMEiN64AsPD8/n83uucQDi/id/DBT4Dolypw/qsz0pTMbj/WHpiDgsdSUyUmeiPt2+V7SrIM+bSss8ySGdR4abQQv6lrui6VxsRonrGCS9VEjSQ9E7CtiqdOZ4UuTqnBHO1X7YXl6Daa4yGq7vWO1D40wVDtj4kWQbn94myPGkCDPdSesczE2sCZShwl8CzcwZ6NiUs6n2nYX99T1cnKqA2EKui6+TwphA5k4yqMayopU5mANV3lNQTBdCMVUA9VQh3GuDMHiVcLCS3J4jSLhCGmKCjBEx0xlshjXYhApfMZRP5CyYD+UkG08+xt+4wLVQZA1tzxthm2tEfD3JxARH7QkbD1ZuozaggdZbxK5kAIsf5qGaKMTY2lAU/rH5HW3PLsEwUYy+YCcERmIjJpDcpzb6l7th9KtQ69fi09ePUej9l7cx2DJbD7UrG3r3afQHOyCo+V3QQzE35pvQvnAZukk5zL5qRL59jsKbPzdheXoBZc4saFhBS6AO7V4zqCpiawuptwQG+UAa7Ct3UT0hh9p9EnXT5Vh6t4C22QaUDh6HwnECOmcO7K+6kW49DKqS2DrEZCtfuI+9GrNHg4fMHVSO5kE7nAPVkAxKBxcOzsajpS4Yh4ohUPPWKTUh3PaQEptIOr6BiJjcZXCwktaAGfrRIpwblqOV3YKdhfXOIvBLeREWpnd8ynsaSJoyESFphwTtfjN6X1jRO2+FxWtCWksqBApeiFIR9K6fiTpPiigDoadqCEag5YUFKl6Yrciw0VOlhOivv/Ff8wtn0KzlebrUYwAAAABJRU5ErkJggg==)}.Failed:before{content:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJPSURBVDjLpZPLS5RhFMYfv9QJlelTQZwRb2OKlKuINuHGLlBEBEOLxAu46oL0F0QQFdWizUCrWnjBaDHgThCMoiKkhUONTqmjmDp2GZ0UnWbmfc/ztrC+GbM2dXbv4ZzfeQ7vefKMMfifyP89IbevNNCYdkN2kawkCZKfSPZTOGTf6Y/m1uflKlC3LvsNTWArr9BT2LAf+W73dn5jHclIBFZyfYWU3or7T4K7AJmbl/yG7EtX1BQXNTVCYgtgbAEAYHlqYHlrsTEVQWr63RZFuqsfDAcdQPrGRR/JF5nKGm9xUxMyr0YBAEXXHgIANq/3ADQobD2J9fAkNiMTMSFb9z8ambMAQER3JC1XttkYGGZXoyZEGyTHRuBuPgBTUu7VSnUAgAUAWutOV2MjZGkehgYUA6O5A0AlkAyRnotiX3MLlFKduYCqAtuGXpyH0XQmOj+TIURt51OzURTYZdBKV2UBSsOIcRp/TVTT4ewK6idECAihtUKOArWcjq/B8tQ6UkUR31+OYXP4sTOdisivrkMyHodWejlXwcC38Fvs8dY5xaIId89VlJy7ACpCNCFCuOp8+BJ6A631gANQSg1mVmOxxGQYRW2nHMha4B5WA3chsv22T5/B13AIicWZmNZ6cMchTXUe81Okzz54pLi0uQWp+TmkZqMwxsBV74Or3od4OISPr0e3SHa3PX0f3HXKofNH/UIG9pZ5PeUth+CyS2EMkEqs4fPEOBJLsyske48/+xD8oxcAYPzs4QaS7RR2kbLTTOTQieczfzfTv8QPldGvTGoF6/8AAAAASUVORK5CYII=)}.Inconclusive:before{content:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIsSURBVDjLpVNLSJQBEP7+h6uu62vLVAJDW1KQTMrINQ1vPQzq1GOpa9EppGOHLh0kCEKL7JBEhVCHihAsESyJiE4FWShGRmauu7KYiv6Pma+DGoFrBQ7MzGFmPr5vmDFIYj1mr1WYfrHPovA9VVOqbC7e/1rS9ZlrAVDYHig5WB0oPtBI0TNrUiC5yhP9jeF4X8NPcWfopoY48XT39PjjXeF0vWkZqOjd7LJYrmGasHPCCJbHwhS9/F8M4s8baid764Xi0Ilfp5voorpJfn2wwx/r3l77TwZUvR+qajXVn8PnvocYfXYH6k2ioOaCpaIdf11ivDcayyiMVudsOYqFb60gARJYHG9DbqQFmSVNjaO3K2NpAeK90ZCqtgcrjkP9aUCXp0moetDFEeRXnYCKXhm+uTW0CkBFu4JlxzZkFlbASz4CQGQVBFeEwZm8geyiMuRVntzsL3oXV+YMkvjRsydC1U+lhwZsWXgHb+oWVAEzIwvzyVlk5igsi7DymmHlHsFQR50rjl+981Jy1Fw6Gu0ObTtnU+cgs28AKgDiy+Awpj5OACBAhZ/qh2HOo6i+NeA73jUAML4/qWux8mt6NjW1w599CS9xb0mSEqQBEDAtwqALUmBaG5FV3oYPnTHMjAwetlWksyByaukxQg2wQ9FlccaK/OXA3/uAEUDp3rNIDQ1ctSk6kHh1/jRFoaL4M4snEMeD73gQx4M4PsT1IZ5AfYH68tZY7zv/ApRMY9mnuVMvAAAAAElFTkSuQmCC)}.NotImplemented:before{content:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAKcSURBVDjLpZPLa9RXHMU/d0ysZEwmMQqZiTaP0agoaKGJUiwIxU0hUjtUQaIuXHSVbRVc+R8ICj5WvrCldJquhVqalIbOohuZxjDVxDSP0RgzyST9zdzvvffrQkh8tBs9yy9fPhw45xhV5X1U8+Yhc3U0LcEdVxdOVq20OA0ooQjhpnfhzuDZTx6++m9edfDFlZGMtXKxI6HJnrZGGtauAWAhcgwVnnB/enkGo/25859l3wIcvpzP2EhuHNpWF9/dWs/UnKW4EOGDkqhbQyqxjsKzMgM/P1ymhlO5C4ezK4DeS/c7RdzQoa3x1PaWenJjJZwT9rQ1gSp/js1jYoZdyfX8M1/mp7uFaTR8mrt29FEMQILr62jQ1I5kA8OF59jIItVA78dJertTiBNs1ZKfLNG+MUHX1oaURtIHEAOw3p/Y197MWHEJEUGCxwfHj8MTZIcnsGKxzrIURYzPLnJgbxvG2hMrKdjItjbV11CYKeG8R7ygIdB3sBMFhkem0RAAQ3Fuka7UZtRHrasOqhYNilOwrkrwnhCU/ON5/q04vHV48ThxOCuoAbxnBQB+am65QnO8FqMxNCjBe14mpHhxBBGCWBLxD3iyWMaYMLUKsO7WYH6Stk1xCAGccmR/Ozs/bKJuXS39R/YgIjgROloSDA39Deit1SZWotsjD8pfp5ONqZ6uTfyWn+T7X0f59t5fqDhUA4ry0fYtjJcWeZQvTBu4/VqRuk9/l9Fy5cbnX+6Od26s58HjWWaflwkusKGxjm1bmhkvLXHvh1+WMbWncgPfZN+qcvex6xnUXkzvSiYP7EvTvH4toDxdqDD4+ygT+cKMMbH+3MCZ7H9uAaDnqytpVX8cDScJlRY0YIwpAjcNcuePgXP/P6Z30QuoP4J7WbYhuQAAAABJRU5ErkJggg==)}.NotExecuted:before{content:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJySURBVDjLpVNLbxJRFO4P8BfwO2Dp0g27VmvSnYkbEzYmLpq6sZP66KIxQmYsUUyb1gYqCZrU2qamVJwOIKaxUKAMD4HyKBQGHAaGx1COcy4P8bHzJt/i3pzvO+c759wJAJgYx7Vl0KjQqdCrmBlAP3jT/Bk/TryiQnv/rWhwuDOM9zjGnYROhUAwLBweRbg3riQza68YMAZjfxMYkK/a2DwVOE3whbIIktwB5bJHUGu0IVesgOcoyK/sJSiMHYoMBbRIDka+S82WAnjkdhcqUgcEFfVWl7xJchsOfX7JshNFES0RQF9YNmYekuPnDSj+aEOh2kc014BcpTUS2Tvw8Hc3CmhHgwI6B3fGYNl4SmIbbjxiCQnJ+WoLphZcEMpIkCk3SUwkeQ603csgFwX0nm9RDj1jqUi6/pBV4YJIrg5ZoakKfCIInkkgNhS4qMqwuvmeQy4KzPhPQgI2q1zrEAHMiLi56IVYvgFTlCpAOWH6sZvc28olbFg3BeQSgeNAkAhg+egVydNP3CQrik7OO4mtyfl9chcbHVhdez0S0H/+GuaqUgtqskJ8EjLVJyeL8oiMCXAysWwVaIt1ZEFndcaZdK4MvR5AutQk5SI5UZAJJh/sk6lgYzvdHhx8CQNl/jBqouaerWRwsj5eEJujSSARx4mekYwNxQRxNbvpxTp/2xzrj3G4SPS7ALX1kZUKlX5gta6QalIXMlkmzBzLVsBosUlz9M6vRRpf5SWrj1q3b/FefxzSBZH0BD2HUwLssgFYolf4WdP236s8/pnuvEoZFl7uMk+X1zj6uVl4ZmKERaOFmzM6mFtM5N+f6X++80/jPghfk2d02wAAAABJRU5ErkJggg==)}div.FailedException,div.NotImplementedException,div.InconclusiveException{padding:5px 0 3px 50px}.FailedException,.InconclusiveException,.NotImplementedException{color:maroon;font-weight:bold}div.story{margin:10px 0;padding:5px 10px;border:1px solid #d0d0d0;-moz-border-radius:10px;-ms-border-radius:10px;-webkit-border-radius:10px;border-radius:10px;background-color:#f5f5f5}.storyTitle{display:inline}.namespaceName:before{content:"Namespace: "}.namespaceName{display:inline}.storySummary div.summaryLabel,.scenarioSummary div.summaryLabel,.storyTitle,.namespace div.summaryLabel,.namespaceName{font-weight:bold}.storyMetadata{display:inline;padding:5px 0}.scenario{margin:0;padding:3px 10px;border:1px solid #e5e5e5;-ms-border-radius:5px;border-radius:5px}.canToggle{cursor:pointer}div.scenario:nth-child(2n+1){background-color:#fff}div.scenario:nth-child(2n){background-color:#f0f1ff}.scenarioTitle{color:#000}.scenarioTitle:before{margin-right:5px}.assembly{height:40px;background-color:#101010;color:#fff}ul.storyNarrative{margin:0;padding:5px 40px;border:none;background-color:transparent;color:#122f4b;font-weight:bold;font-style:italic}ul.steps{margin-bottom:0;padding-left:20px;border:none;background-color:transparent}.step.ConsecutiveSetupState span,.step.ConsecutiveTransition span,.step.ConsecutiveAssertion span{padding-left:10px}.step-title-extra-lines{padding-left:50px}input.cbx_toggle{float:right}.examples{margin-left:15px;border:1px solid #d0d0d0;border-spacing:0;border-collapse:collapse}.examples th{background-color:#d0d0d0}.examples td,.examples th{padding:5px 15px;border:0}.examples td{border:1px solid #d0d0d0}.example-header{display:block;margin-top:10px;margin-bottom:10px}.tag{margin:3px;padding:3px;border:1px solid #d0d0d0;-ms-border-radius:5px;border-radius:5px;background-color:#f0f0f0;display:inline-block}
7+
</style>
8+
<style type='text/css'>
9+
/*If you drop a custom stylesheet named BDDfyCustom.css in your output folder it gets embedded here. This way you can apply some custom styles over your html report.*/
10+
11+
</style>
12+
<title>BDDfy Test Result 25/03/2014</title>
13+
</head>
14+
<body>
15+
<div id='main'>
16+
<div class='header'>
17+
<div id='BDDfyTitle'>BDDfy</div>
18+
<div id='BDDfyDescription'>A simple BDD framework for .Net developers</div>
19+
</div>
20+
<section class='summary'>
21+
<h3 class='label'>Summary:</h3>
22+
<ul class='resultSummary'>
23+
<li class='storySummary'>
24+
<div class='summaryLine'>
25+
<div class='summaryLabel'>Stories</div>
26+
<span class='summaryCount'>0</span>
27+
</div>
28+
</li>
29+
<li class='scenarioSummary'>
30+
<div class='summaryLine'>
31+
<div class='summaryLabel'>Scenarios</div>
32+
<span class='summaryCount'>1</span>
33+
</div>
34+
</li>
35+
<li class='Passed'>
36+
<div class='summaryLine'>
37+
<div class='summaryLabel'>Passed</div>
38+
<span class='summaryCount'>1</span>
39+
</div>
40+
</li>
41+
<li class='Inconclusive'>
42+
<div class='summaryLine'>
43+
<div class='summaryLabel'>Inconclusive</div>
44+
<span class='summaryCount'>0</span>
45+
</div>
46+
</li>
47+
<li class='NotImplemented'>
48+
<div class='summaryLine'>
49+
<div class='summaryLabel'>Not Implemented</div>
50+
<span class='summaryCount'>0</span>
51+
</div>
52+
</li>
53+
<li class='Failed'>
54+
<div class='summaryLine'>
55+
<div class='summaryLabel'>Failed</div>
56+
<span class='summaryCount'>0</span>
57+
</div>
58+
</li>
59+
</ul>
60+
</section>
61+
<div id='testResult'>
62+
<div id='detailsHeader'>
63+
<h3 id='detailsLable'>Details:</h3>
64+
<div id='expandCollapse'>
65+
<a href='#' class='expandAll'>[expand all]</a>
66+
<a href='#' class='collapseAll'>[collapse all]</a>
67+
</div>
68+
</div>
69+
<ul class='testResult'>
70+
<li>
71+
<div class='story Passed'>
72+
<div class='storyMetadata'>
73+
<div class='namespaceName'>TestStack.BDDfy.Tests</div>
74+
</div>
75+
<div class='scenarios'>
76+
<div class='scenario'>
77+
<div class='Passed canToggle scenarioTitle' data-toggle-target='scenario-1'>Tags are reported in html report<div class='tag'>Tag1</div><div class='tag'>Tag 2</div></div>
78+
<ul class='steps' id='scenario-1'>
79+
<li class='step Passed SetupState ' data-toggle-target='step-1-1' >
80+
<span>Given a step</span>
81+
</li>
82+
</ul>
83+
</div>
84+
</div>
85+
</div>
86+
</li>
87+
</ul>
88+
<p><span>Tested at: 25/03/2014 11:30:05</span></p>
89+
</div>
90+
</div>
91+
<div class='footer'>Powered by <a href='https://github.com/TestStack/TestStack.BDDfy'>BDDfy</a> framework</div>
92+
<script type='text/javascript' src='http://code.jquery.com/jquery-2.1.0.min.js'></script>
93+
<script>
94+
$(function(){$(".canToggle").each(function(){var n=$("#"+$(this).data("toggle-target"));n.hide();$(this).click(function(){n.toggle(200)})});$(".expandAll").click(function(){$(".steps").css("display","")});$(".collapseAll").click(function(){$(".steps").css("display","none")});$("ul.resultSummary li:not('.storySummary'):not('.scenarioSummary')").append("<input type='checkbox' class='cbx_toggle' checked/>");$(".cbx_toggle").click(function(){var n=$(this),t=n.closest("li").attr("class");$("#testResult div.scenario ."+t).parent().toggle(n.is(":checked"))})});
95+
/*
96+
//# sourceMappingURL=classic.min.js.map
97+
*/
98+
</script>
99+
<script>
100+
/*If you drop a custom Javascript named BDDfyCustom.js in your output folder it gets embedded here. This way you can apply some custom Javascript logic to your html report.*/
101+
102+
</script>
103+
</body>
104+
</html>
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+

2+
### Tags are reported in markdown report
3+
Given a step
4+
5+
6+
Tags: `Tag1`, `Tag 2`

0 commit comments

Comments
 (0)