Files
Orchard/lib/specflow/TechTalk.SpecFlow.Reporting.dll
T

1820 lines
70 KiB
Plaintext
Raw Normal View History

MZÿÿ¸@º´ Í!¸LÍ!This program cannot be run in DOS mode.
$PELKà! .- @@ …Ù@…à,K@˜` h,  H.text4
  `.rsrc˜@@@.reloc `@B-HÈã H À?¤P þ®°‘µñ¾É#j~/å!´§/ûCû¹1|gÃäIìVB5ª¯­Óè¨6©¼²¹€J‹ï×Ù¿Râ¢ÝæÛKÒ1Ÿéz“Ö}ôÂsy‚ÈY›ÂÌ1°QüjÖ~‰ñÍ}Â"¸L,“âñY™otQû9’ÿêceËò”Œ»Â9s>0hNs
}(
*0o
o
o
¥
+*Ð(
rp$(
o
&*(
*(
*(
} (&} }
*~(
} } }
*0s8}
{
{ o
}+{
(
r7p(!
("
},(

{
o#
}-{
($
þ{
s%
r;p s&
+MrKpo'
þ-+ ( C* o(
+ o)
o*
%þþ ( Þþ-o+
Ü*0Po,
þþ ->{
{.s
}(-
o.
(/
}o0
o1
*0bs2
s3
s4
rSprUpo5
{ s6
s7
(8
o9
Þþ-o+
Ü
+ *= I0WÐ(
rips:
(0þ -{
(1+!{
(
{ o;
(2*0]s
}(
(&}{(!}{o<
(=
{(U}}s
}(
}}}}*0Ús}{{o
}{(
  r7p(!
("
}{{}s>
}s?
}{o@

+c
(A
s  s( o@}&}oD}{oB
{oC
{{oD

(E
-Þ
þo+
Ü{oF
8 (G
s

oH
}
oI
}
 oJ
þ-0sp} oJ
oK
( oL
8šs  oM
} oN
,oN
{O
+}  u þþ-!t ((+oP
(XŽiþ:_ÿÿÿ(Q
:ÐþÿÿÞþ
o+
Ü{{oR
+F(S
{þþ-
({oT
þþ- }(U
-­Þþ o+
Ü{ + *ALztî 7CfW½0ÍoV
oW
8˜š
oX
oY
+iš sZ

+1oX
o[
o\
šo]
o\
šo]
o^
X
oX
o[
o\
Žiþ  -´(Þ/Žiþ  -‰XŽiþ  :Wÿÿÿs_
+*0 s_
oP
o`
(a
( ob
(oc
od
(oe
of
þ-rof
oY
 +O š
o\

 +%
 šo]
(og
 X  
Žiþ X  Žiþoh
(i
:-ÿÿÿÞþo+
Ü+*Úï0r
, þþ+ - +Zoj
+/(k
p(l
p(m
(n
oo
(p
-ÆÞþo+
Ü +*>\0 {oq
þþ(r
{ ,Pp(s
-p(s
-r×p(s
-+'st
}+ su
}+sv
}+sw
z{(oc
*0˜ sx
oy
oz
Y +fY oHŽi/poHšråp(m
+p
oy
o{
o|
o}
o~
&o|
o
&Y þþ-o€
+*(
*0N
{={>oHŽi/.ráp{>oH%{=% X}=šråp(m
+p
+*0fsX }>{>oFo€
C$^o(
ps
}=þYs

+ *0WÐ(
rips:
(0þ -{(1+!{(
{o;
(2*(
*0 o…
+*0 {ob
{?ob
o†
+*09rSp
o‡

 sZ  
oˆ
}? {?uX-" {?uY- {?uZþþ+- {?o
o‰
 {o@
(A
oD
þ-8yoF {?ob
o
-8Ps'  }!  {?}% }" }#  oy
(+(+~-þs
+~(+(+Žiþþ-fs
}$+8{$soHš}š}o“
XŽioHŽi(”
þ-­{o•
{o
{þþ-8 {?(}{{ob
(oc
 +(E
:TþÿÿÞþo+
Ü{ - þ[s—
 + (+þþ-Gs } {?(}{oD
{{oD
s'

}!
 {?}%
}"
}#
{o

o™
:þüÿÿÞ
þ-
o+
Ü*A4³:#0¹
uXþþ -st
+^uYþþ -su
+FuZþþ -sv
+.uiþþ -
+ujþþ -s
þþ(r
ob
oc
od
oe
of
(
 +*0 (
+*0Bþþ -
+0o[
(oY
þs
(+(+sž
+*0
o]
og
 +*0:o\
~-þs 
+~(+( +s¡
+*0
p(s
þ -st
+2p(s
þ -su
+r×p(s
þ -sv
þþ(r
ob
oc
od
oe
of
(
 +*(
*(
*N
}(
*(
*0{@
+*0Ds\
}@{@
þ]
(
+{@o;
(" +*0

+B

s%
 
o­
Þ þ- o+
Üo™
-±Þþ-o+
Ü+*)@Sc0I
C


(´
s5
+ *&} *
*0n

o¸



rpo¾
o¿
r-po¾
rIpoÁ
( +rSpoÁ
( +( +
 8­

rcp
þ

-C
rupoÉ



-




rp
þ

-o;

(=
 o™


:CÿÿÿÞ þ

- o+
Ü+*ÄQ(
*(
*0YC
, 
š (=
p(Ð
Þ"&(=
p(Ð
Þ& Þ*6P4"0@
+# š
() þ- ÞX Žiþ +*:
(,*0s.
þ/
*(
*F(
}'*0F
{'(* p,o×
+rp(Ù
 +*0
r%p
+*09r%p(Û


Þþ -o+
Ü*
'0ú


s%
o‰
r/prSpoo
rCp(Ð
s4
Þþ  -o+
Üo€

rOprSp
rqprSp

 (3Þþ  -o+
Ü*O^Òä0¬o
rp$oê

o
rpÐ(
¢Ð(
¢Ð(
¢Ð(
¢
¢¢¢¢o
&Þ 
( z*m+˜š

ŒC
(5*0N(6


r­p

}(*0+ 
þþ -p
z +*0 {(
+*N
}.(
*0 {/
+*"}/*0 !{0
+*"}0*0 !{1
+*"}1*(
*0 {2
+*"}2*0 "{3
+*"}3*0 {4
+*"}4*0 #{5
+*"}5*0 ${6
+*"}6*0 {7
+*"}7*0 {8
+*"}8*(
*09%
rp(´
r+p
}9rqp
}:*0I&

+/ š
{9
þþ-+
(Q X
Žiþ-Å*0q'<oý
+S š
{:
þ-/+š (RXŽiþX Žiþ- *0oÿ
o‰
+*0 o
+*0 (pp(
+rÑp(m
s
o
Ži,ŽiYšoÿ
o‰
p(s
+ sN(SoEoGpo
o
o‰
p~;-þVs
€;+~;(+(+(/
(
oA~<-þWs
€<+~<(+(+oIoKoM
 o
*0))o
o‰
o
rpo
Yo 
+*0*(´
s

(P +*0+s

( 
o 
s

o
rp(
B¢(, ( 
o
Ð(
o
o
to
oTo
(
+*A<?xml version="1.0" encoding="utf-8"?>
<!-- to be finished and used from -->
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
xmlns:sfr="urn:TechTalk:SpecFlow.Report"
exclude-result-prefixes="msxsl">
<xsl:param name="feature-language" select="'en'" />
<xsl:param name="languages" select="document('Languages.xml')" />
<xsl:template name="get-keyword">
<xsl:param name="keyword" />
<xsl:param name="language">
<xsl:choose>
<xsl:when test="ancestor::sfr:Feature[1]/sfr:Language">
<xsl:value-of select="ancestor::sfr:Feature[1]/sfr:Language"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$feature-language" />
</xsl:otherwise>
</xsl:choose>
</xsl:param>
<xsl:variable name="local-keyword">
<xsl:choose>
<xsl:when test="$languages//Language[@code = $language]">
<xsl:value-of select="$languages//Language[@code = $language]/node()[local-name() = $keyword]"/>
</xsl:when>
<xsl:otherwise>
<xsl:variable name="base-language" select="substring-before($language, '-')" />
<xsl:value-of select="$languages//Language[@code = $base-language]/node()[local-name() = $keyword]"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:value-of select="$local-keyword"/>
</xsl:template>
<xsl:template match="sfr:ScenarioStep">
<xsl:variable name="step-id" select="generate-id()" />
<xsl:variable name="step-keyword" select="@xsi:type" />
<span id="txt{$step-id}">
<span class="stepKeyword">
<xsl:call-template name="get-keyword">
<xsl:with-param name="keyword" select="$step-keyword" />
</xsl:call-template>
</span>
<xsl:text> </xsl:text>
<xsl:apply-templates select="sfr:Text" />
</span>
<xsl:apply-templates select="." mode="clipboardCopy"/>
<xsl:apply-templates select="sfr:TableArg" />
<xsl:apply-templates select="sfr:MultiLineTextArgument" />
</xsl:template>
<xsl:template match="sfr:ScenarioStep" priority="-0.5" mode="clipboardCopy">
<!-- nop -->
</xsl:template>
<xsl:template match="sfr:Text" priority="-0.1">
<xsl:value-of select="string(node())"/>
</xsl:template>
<xsl:template match="sfr:TableArg">
<xsl:variable name="table-id" select="concat('tbl', generate-id(..))" />
<table class="tableArg" id="{$table-id}" cellpadding="0" cellspacing="0">
<tr>
<xsl:for-each select="sfr:Header/sfr:Cells/sfr:Cell">
<th>
<xsl:attribute name="class">
<xsl:choose>
<xsl:when test="position()=1">left top</xsl:when>
<xsl:otherwise>top</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<xsl:value-of select="sfr:Value"/>
</th>
</xsl:for-each>
</tr>
<xsl:for-each select="sfr:Body/sfr:Row">
<tr>
<xsl:for-each select="sfr:Cells/sfr:Cell">
<td>
<xsl:attribute name="class">
<xsl:choose>
<xsl:when test="position()=1">left</xsl:when>
<xsl:otherwise></xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<xsl:value-of select="sfr:Value"/>
</td>
</xsl:for-each>
</tr>
</xsl:for-each>
</table>
</xsl:template>
<xsl:template match="sfr:MultiLineTextArgument">
<pre>
<xsl:value-of select="."/>
</pre>
</xsl:template>
</xsl:stylesheet>
¶#<?xml version="1.0" encoding="utf-8"?>
<!-- to be finished and used from -->
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
xmlns:sfr="urn:TechTalk:SpecFlow.Report"
exclude-result-prefixes="msxsl">
<xsl:param name="tool-language" select="'en'" />
<xsl:param name="base-tool-language" select="substring-before($tool-language, '-')" />
<xsl:include href="GherkinElements.xslt"/>
<xsl:param name="common-tool-text">
<Language code="en">
<GeneratedByPre>Generated by SpecFlow at </GeneratedByPre>
<GeneratedByPost></GeneratedByPost>
<See>see </See>
<Show>show</Show>
<Hide>hide</Hide>
<Copy>copy</Copy>
</Language>
<Language code="de">
<GeneratedByPre>Erstellt durch SpecFlow am </GeneratedByPre>
<GeneratedByPost></GeneratedByPost>
<See></See>
<Show>anzeigen</Show>
<Hide>ausblenden</Hide>
<Copy>kopieren</Copy>
</Language>
</xsl:param>
<xsl:template name="get-common-tool-text">
<xsl:param name="text-key" />
<xsl:call-template name="get-tool-text-base">
<xsl:with-param name="text-key" select="$text-key" />
<xsl:with-param name="local-tool-texts" select="msxsl:node-set($common-tool-text)" />
</xsl:call-template>
</xsl:template>
<xsl:template name="get-tool-text-base">
<xsl:param name="text-key" />
<xsl:param name="local-tool-texts" />
<xsl:choose>
<xsl:when test="$local-tool-texts//Language[@code = $tool-language]">
<xsl:value-of select="$local-tool-texts//Language[@code = $tool-language]/node()[local-name() = $text-key]"/>
</xsl:when>
<xsl:when test="$local-tool-texts//Language[@code = $base-tool-language]">
<xsl:value-of select="$local-tool-texts//Language[@code = $base-tool-language]/node()[local-name() = $text-key]"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$local-tool-texts//Language[@code = 'en']/node()[local-name() = $text-key]"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="sfr:ScenarioStep" priority="-0.1" mode="clipboardCopy">
<xsl:variable name="step-id" select="generate-id()" />
<xsl:text> </xsl:text>
<a href="#" onclick="copyStepToClipboard('{$step-id}'); return false;" class="button">[<xsl:call-template name="get-common-tool-text">
<xsl:with-param name="text-key" select="'Copy'" />
</xsl:call-template>]</a>
</xsl:template>
<xsl:template name="html-common-header">
<xsl:param name="title" />
<xsl:comment>Generated by SpecFlow (see http://www.specflow.org/)</xsl:comment>
<title>
<xsl:value-of select="$title"/>
</title>
<style>
<![CDATA[
body
{
font: small verdana, arial, helvetica; color:#000000;
}
h1
{
font-size: 16px;
}
h2
{
font-size: 14px;
}
h3
{
font-size: 12px;
}
div.marker
{
height: 1.1em;
width: 1.1em;
float:left;
margin-right: 0.3em;
}
table.reportTable
{
width: 100%;
font-size: 12px;
}
table.subReportTable
{
font-size: 12px;
margin-left: 2em;
}
td, th
{
text-align: left;
border-bottom: solid 1px #dcdcdc;
border-right: solid 1px #dcdcdc;
padding-left: 0.5em;
padding-right: 0.5em;
padding-top: 0.25em;
padding-bottom: 0.25em;
}
th
{
background-color: #FFF2E5;
padding-top: 0.4em;
padding-bottom: 0.4em;
}
.top
{
border-top: solid 1px #dcdcdc;
}
.left
{
border-left: solid 1px #dcdcdc;
}
td.accessPath, th.accessPath
{
padding-left: 1.0em;
}
td.accessPath
{
font-style:italic;
}
td.empty
{
border: none;
height: 2.0em;
}
td.numeric
{
text-align: right;
}
td.marker
{
white-space: nowrap;
}
td.subRow
{
padding-left: 2em;
}
div.legend
{
margin-top: 2em;
padding-left: 2em;
font-style:italic;
font-size: 10px;
}
a.button
{
}
.hidden
{
display: none;
}
// gherkin elements style
table.tableArg
{
font-size: 12px;
margin-left: 2em;
}
table.tableArg th
{
background-color: #BBFFBB;
}
.stepKeyword
{
font-style:italic;
}
.stepParam
{
font-style:italic;
color: Green;
}
]]></style>
<script>
var showButtonText = "[<xsl:call-template name="get-common-tool-text">
<xsl:with-param name="text-key" select="'Show'" />
</xsl:call-template>]";
var hideButtonText = "[<xsl:call-template name="get-common-tool-text">
<xsl:with-param name="text-key" select="'Hide'" />
</xsl:call-template>]";
<![CDATA[
function toggle(sdid){
e=window.event.srcElement;
toToggle=document.getElementById(sdid);
if (e.innerText==showButtonText)
{
e.innerText=hideButtonText;
toToggle.style.display="block";
}
else
{
e.innerText=showButtonText;
toToggle.style.display="none";
}
}
function copyToClipboard(s)
{
clipboardData.setData("Text", s);
}
]]>
</script>
</xsl:template>
<xsl:template name="html-copy-step-to-clipboard-script">
<script>
<![CDATA[
function copyStepToClipboard(stepId)
{
e=window.event.srcElement;
text=document.getElementById("txt" + stepId);
tableArg=document.getElementById("tbl" + stepId);
result = text.innerText;
if (tableArg != null)
{
result += "\r\n";
result += getTableSource(tableArg);
}
copyToClipboard(result);
}
function getTableSource(table)
{
indent = " ";
header = table.rows(0).cells;
rows = table.rows;
columnWidths = new Array();
for (colIndex = 0; colIndex < header.length; colIndex++)
columnWidths[colIndex] = header[colIndex].innerText.length;
for (rowIndex = 1; rowIndex < rows.length; rowIndex++)
{
row = rows[rowIndex].cells;
for (colIndex = 0; colIndex < header.length; colIndex++)
if (row[colIndex].innerText.length > columnWidths[colIndex])
columnWidths[colIndex] = row[colIndex].innerText.length;
}
tableSource = "";
for (rowIndex = 0; rowIndex < rows.length; rowIndex++)
{
row = rows[rowIndex].cells;
tableSource = tableSource + indent + "|";
for (colIndex = 0; colIndex < header.length; colIndex++)
{
tableSource = tableSource + " ";
tableSource = tableSource + row[colIndex].innerText;
for (i = row[colIndex].innerText.length; i < columnWidths[colIndex]; i++)
tableSource = tableSource + " ";
tableSource = tableSource + " |";
}
tableSource = tableSource + "\r\n";
}
return tableSource;
}
]]>
</script>
</xsl:template>
<xsl:template name="html-body-header">
<xsl:param name="title" />
<xsl:param name="generatedAt" select="/*/@generatedAt" />
<h1>
<xsl:value-of select="$title"/>
</h1>
<xsl:call-template name="get-common-tool-text">
<xsl:with-param name="text-key" select="'GeneratedByPre'" />
</xsl:call-template>
<xsl:value-of select="$generatedAt"/>
<xsl:call-template name="get-common-tool-text">
<xsl:with-param name="text-key" select="'GeneratedByPost'" />
</xsl:call-template>
<xsl:text> (</xsl:text>
<xsl:call-template name="get-common-tool-text">
<xsl:with-param name="text-key" select="'See'" />
</xsl:call-template>
<a href="http://www.specflow.org/">http://www.specflow.org/</a>).
</xsl:template>
</xsl:stylesheet>
½.<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
xmlns:sfr="urn:TechTalk:SpecFlow.Report"
exclude-result-prefixes="msxsl">
<xsl:output method="html" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"/>
<xsl:include href="..\Common\Common.xslt"/>
<xsl:param name="tool-text">
<Language code="en">
<Title>Step Definition Report</Title>
<Givens>Givens</Givens>
<Whens>Whens</Whens>
<Thens>Thens</Thens>
<StepDefinition>Step Definition</StepDefinition>
<Instances>Instances</Instances>
<BindingsWithoutInstancesMessage>Bindings without instances are not included in this report.</BindingsWithoutInstancesMessage>
<ParameterValuesPre>Used values for parameter </ParameterValuesPre>
<ParameterValuesPost>:</ParameterValuesPost>
<ScenarioOutlineExampleMessage>(scenario outline example)</ScenarioOutlineExampleMessage>
</Language>
<Language code="de">
<Title>Auflistung der Step Definitionen</Title>
<Givens>Gegeben Steps</Givens>
<Whens>Wenn Steps</Whens>
<Thens>Dann Steps</Thens>
<StepDefinition>Step Definition</StepDefinition>
<Instances>Instanzen</Instances>
<BindingsWithoutInstancesMessage>Bindings ohne Instanzen sind in diesem Report nicht aufgeführt.</BindingsWithoutInstancesMessage>
<ParameterValuesPre>Verwendete Parameterwerte </ParameterValuesPre>
<ParameterValuesPost>:</ParameterValuesPost>
<ScenarioOutlineExampleMessage>(Szenariogrundriss Beispiel)</ScenarioOutlineExampleMessage>
</Language>
</xsl:param>
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
<xsl:template name="get-tool-text">
<xsl:param name="text-key" />
<xsl:call-template name="get-tool-text-base">
<xsl:with-param name="text-key" select="$text-key" />
<xsl:with-param name="local-tool-texts" select="msxsl:node-set($tool-text)" />
</xsl:call-template>
</xsl:template>
<xsl:key name="step-usage-variation" match="sfr:Instance" use="normalize-space(string(sfr:ScenarioStep))"/>
<xsl:template match="/">
<xsl:variable name="title">
<xsl:call-template name="get-tool-text">
<xsl:with-param name="text-key" select="'Title'" />
</xsl:call-template>
<xsl:text> - </xsl:text>
<xsl:value-of select="sfr:StepDefinitionReport/@projectName"/>
</xsl:variable>
<html>
<head>
<xsl:call-template name="html-common-header">
<xsl:with-param name="title" select="$title" />
</xsl:call-template>
<style>
<![CDATA[
a.instanceRef
{
font-size: 10px;
margin-left: 2em;
}
.noBinding td
{
background-color: #FFFFBB;
}
.noInstances td
{
background-color: #FFBBBB;
}
]]>
</style>
<xsl:call-template name="html-copy-step-to-clipboard-script" />
</head>
<body>
<xsl:call-template name="html-body-header">
<xsl:with-param name="title" select="$title" />
</xsl:call-template>
<xsl:if test="(/sfr:StepDefinitionReport/@showBindingsWithoutInsance!='true')">
<div class="legend">
<xsl:call-template name="get-tool-text">
<xsl:with-param name="text-key" select="'BindingsWithoutInstancesMessage'" />
</xsl:call-template>
</div>
</xsl:if>
<h2>
<xsl:call-template name="get-tool-text">
<xsl:with-param name="text-key" select="'Givens'" />
</xsl:call-template>
</h2>
<xsl:call-template name="process-block">
<xsl:with-param name="block-name" select="'Given'" />
</xsl:call-template>
<h2>
<xsl:call-template name="get-tool-text">
<xsl:with-param name="text-key" select="'Whens'" />
</xsl:call-template>
</h2>
<xsl:call-template name="process-block">
<xsl:with-param name="block-name" select="'When'" />
</xsl:call-template>
<h2>
<xsl:call-template name="get-tool-text">
<xsl:with-param name="text-key" select="'Thens'" />
</xsl:call-template>
</h2>
<xsl:call-template name="process-block">
<xsl:with-param name="block-name" select="'Then'" />
</xsl:call-template>
</body>
</html>
</xsl:template>
<xsl:template name="process-block">
<xsl:param name="block-name" />
<table class="reportTable" cellpadding="0" cellspacing="0">
<tr>
<th class="top left">
<xsl:call-template name="get-tool-text">
<xsl:with-param name="text-key" select="'StepDefinition'" />
</xsl:call-template>
</th>
<th class="top">
<xsl:call-template name="get-tool-text">
<xsl:with-param name="text-key" select="'Instances'" />
</xsl:call-template>
</th>
</tr>
<xsl:for-each select="sfr:StepDefinitionReport/sfr:StepDefinition[@type=$block-name]">
<xsl:sort order="ascending" select="sfr:ScenarioStep/sfr:Text" data-type="text"/>
<xsl:if test="(/sfr:StepDefinitionReport/@showBindingsWithoutInsance='true') or sfr:Instances">
<xsl:variable name="stepdef-id" select="generate-id()" />
<tr>
<xsl:attribute name="class">
<xsl:choose>
<xsl:when test="not(sfr:Binding)">noBinding</xsl:when>
<xsl:when test="not(sfr:Instances)">noInstances</xsl:when>
<xsl:otherwise></xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<td class="left">
<xsl:apply-templates select="sfr:ScenarioStep" />
</td>
<td>
<xsl:value-of select="count(./sfr:Instances/sfr:Instance)"/>
<xsl:if test="sfr:Instances">
<xsl:text> </xsl:text>
<a href="#" onclick="toggle('{$stepdef-id}'); return false;" class="button">[<xsl:call-template name="get-common-tool-text">
<xsl:with-param name="text-key" select="'Show'" />
</xsl:call-template>]</a>
</xsl:if>
</td>
</tr>
<xsl:if test="sfr:Instances">
<tr id="{$stepdef-id}" class="hidden">
<td class="left" colspan="2">
<table class="subReportTable" cellpadding="0" cellspacing="0">
<tr>
<th class="top left">
<xsl:call-template name="get-tool-text">
<xsl:with-param name="text-key" select="'Instances'" />
</xsl:call-template>
<xsl:text>:</xsl:text>
</th>
</tr>
<xsl:for-each select="sfr:Instances/sfr:Instance">
<xsl:variable name="current-key" select="normalize-space(string(sfr:ScenarioStep))" />
<xsl:if test="generate-id() = generate-id(key('step-usage-variation', $current-key))">
<tr>
<td class="left">
<!--<xsl:value-of select="count(key('step-usage-variation', $current-key))"/>-->
<xsl:apply-templates select="sfr:ScenarioStep" />
<br/>
<xsl:for-each select="../sfr:Instance[normalize-space(string(sfr:ScenarioStep)) = $current-key]">
<xsl:apply-templates select="." mode="instance-ref" />
<br/>
</xsl:for-each>
</td>
</tr>
</xsl:if>
</xsl:for-each>
</table>
</td>
</tr>
</xsl:if>
</xsl:if>
</xsl:for-each>
</table>
</xsl:template>
<xsl:template match="sfr:Instance" mode="instance-ref">
<b>
<a class="instanceRef" href="{sfr:FeatureRef/@file}" title="{sfr:FeatureRef/@file}, line {sfr:ScenarioRef/@line}">
<xsl:value-of select="sfr:FeatureRef/@name"/>
<xsl:text> / </xsl:text>
<xsl:value-of select="sfr:ScenarioRef/@name"/>
<xsl:if test="@fromScenarioOutline = 'true'">
<xsl:text> </xsl:text>
<xsl:call-template name="get-tool-text">
<xsl:with-param name="text-key" select="'ScenarioOutlineExampleMessage'" />
</xsl:call-template>
</xsl:if>
</a>
</b>
</xsl:template>
<xsl:template name="step-param">
<xsl:param name="param-name" select="@name" />
<xsl:param name="instances-root" select="../../sfr:Instances" />
<xsl:variable name="param-sample">
<xsl:choose>
<xsl:when test="$instances-root/sfr:Instance/sfr:Parameters/sfr:Parameter[@name=$param-name]">
<xsl:value-of select="$instances-root/sfr:Instance/sfr:Parameters/sfr:Parameter[@name=$param-name]"/>
</xsl:when>
<xsl:otherwise>
<xsl:text>{</xsl:text>
<xsl:value-of select="$param-name"/>
<xsl:text>}</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="param-values">
<xsl:call-template name="get-tool-text">
<xsl:with-param name="text-key" select="'ParameterValuesPre'" />
</xsl:call-template>
<xsl:text>'</xsl:text><xsl:value-of select="$param-name"/>
<xsl:text>'</xsl:text>
<xsl:call-template name="get-tool-text">
<xsl:with-param name="text-key" select="'ParameterValuesPost'" />
</xsl:call-template>
<xsl:text>
</xsl:text>
<xsl:for-each select="$instances-root/sfr:Instance/sfr:Parameters/sfr:Parameter[@name=$param-name]">
<xsl:variable name="param-value" select="string(text())" />
<xsl:if test="not(../../preceding-sibling::sfr:Instance[string(sfr:Parameters/sfr:Parameter[@name=$param-name]/text())=$param-value])">
<xsl:value-of select="text()"/>
<xsl:text>
</xsl:text>
</xsl:if>
</xsl:for-each>
</xsl:variable>
<span class="stepParam" title="{$param-values}">
<xsl:value-of select="$param-sample"/>
</span>
</xsl:template>
<xsl:template match="sfr:Text">
<xsl:call-template name="display-text">
<xsl:with-param name="text" select="string(node())" />
</xsl:call-template>
</xsl:template>
<xsl:template name="display-text">
<xsl:param name="text" />
<xsl:choose>
<xsl:when test="contains($text, '{')">
<xsl:value-of select="substring-before($text, '{')" />
<xsl:variable name="rest" select="substring-after($text, '{')" />
<xsl:call-template name="step-param">
<xsl:with-param name="param-name" select="substring-before($rest, '}')" />
</xsl:call-template>
<xsl:call-template name="display-text">
<xsl:with-param name="text" select="substring-after($rest, '}')" />
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$text"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
ž <?xml version="1.0" encoding="utf-8" ?>
<SpecFlowLanguages>
<Language code="en" defaultSpecificCulture="en-US">
<Feature>Feature</Feature>
<Background>Background</Background>
<Scenario>Scenario</Scenario>
<ScenarioOutline>Scenario Outline</ScenarioOutline>
<Examples>Examples</Examples>
<Examples>Scenarios</Examples>
<Given>Given</Given>
<When>When</When>
<Then>Then</Then>
<And>And</And>
<But>But</But>
</Language>
<Language code="de" defaultSpecificCulture="de-DE">
<Feature>Funktionalität</Feature>
<Background>Grundlage</Background>
<Scenario>Szenario</Scenario>
<ScenarioOutline>Szenariogrundriss</ScenarioOutline>
<Examples>Beispiele</Examples>
<Given>Gegeben sei</Given>
<When>Wenn</When>
<Then>Dann</Then>
<And>Und</And>
<But>Aber</But>
</Language>
<Language code="fr" defaultSpecificCulture="fr-FR">
<Feature>Fonctionnalité</Feature>
<Background>Contexte</Background>
<Scenario>Scénario</Scenario>
<ScenarioOutline>Plan du Scénario</ScenarioOutline>
<Examples>Exemples</Examples>
<Given>Soit</Given>
<When>Lorsque</When>
<Then>Alors</Then>
<And>Et</And>
<But>Mais</But>
</Language>
<Language code="hu" defaultSpecificCulture="hu-HU">
<Feature>Jellemző</Feature>
<Background>Háttér</Background>
<Scenario>Forgatókönyv</Scenario>
<ScenarioOutline>Forgatókönyv vázlat</ScenarioOutline>
<Examples>Példák</Examples>
<Given>Ha</Given>
<When>Majd</When>
<Then>Akkor</Then>
<And>És</And>
<But>De</But>
</Language>
<Language code="nl" defaultSpecificCulture="nl-NL">
<Feature>Functionaliteit</Feature>
<Background>Achtergrond</Background>
<Scenario>Scenario</Scenario>
<ScenarioOutline>Abstract Scenario</ScenarioOutline>
<Examples>Voorbeelden</Examples>
<Given>Gegeven</Given>
<When>Als</When>
<Then>Dan</Then>
<And>En</And>
<But>Maar</But>
</Language>
<Language code="sv" defaultSpecificCulture="sv-SE">
<Feature>Egenskap</Feature>
<Background>Bakgrund</Background>
<Scenario>Scenario</Scenario>
<ScenarioOutline>Abstrakt Scenario</ScenarioOutline>
<Examples>Exempel</Examples>
<Given>Givet</Given>
<When>När</When>
<Then>SÃ¥</Then>
<And>Och</And>
<But>Men</But>
</Language>
</SpecFlowLanguages>
Œ8<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
xmlns:sfr="urn:TechTalk:SpecFlow.Report"
xmlns:nunit="urn:NUnit"
exclude-result-prefixes="msxsl">
<xsl:output method="html" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"/>
<xsl:include href="..\Common\Common.xslt"/>
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
<xsl:key name="step-usage-variation" match="sfr:Instance" use="normalize-space(string(sfr:ScenarioStep))"/>
<xsl:template match="/">
<xsl:variable name="title">
<xsl:value-of select="sfr:NUnitExecutionReport/@projectName"/> Test Execution Report
</xsl:variable>
<html>
<head>
<xsl:call-template name="html-common-header">
<xsl:with-param name="title" select="$title" />
</xsl:call-template>
<style>
<![CDATA[
.bar
{
height: 1.5em;
}
.success
{
background-color: #22dd22;
}
.failure
{
background-color: #dd2222;
}
.ignored
{
background-color: #ffff00;
}
.pending
{
background-color: #dd66ff;
}
.bar div
{
height: 1.5em;
float: left;
}
div.failurePanel
{
background-color: #DDDDDD;
}
span.traceMessage
{
font-style:italic;
margin-left: 2em;
color: #888888;
}
]]>
</style>
</head>
<body>
<xsl:call-template name="html-body-header">
<xsl:with-param name="title" select="$title" />
</xsl:call-template>
<h2>Summary</h2>
<xsl:variable name="summary">
<xsl:call-template name="get-summary" />
</xsl:variable>
<table class="reportTable" cellpadding="0" cellspacing="0">
<tr>
<th class="top left">Features</th>
<th class="top" colspan="2">Success rate</th>
<th class="top">Scenarios</th>
<th class="top">Success</th>
<th class="top">Failed</th>
<th class="top">Pending</th>
<th class="top">Ignored</th>
</tr>
<tr>
<td class="left">
<xsl:value-of select="count(//nunit:test-suite[(child::nunit:results/nunit:test-case)])"/> features
</td>
<xsl:call-template name="summary-row">
<xsl:with-param name="summary" select="$summary" />
</xsl:call-template>
</tr>
</table>
<hr />
<h2>Feature Summary</h2>
<table class="reportTable" cellpadding="0" cellspacing="0">
<tr>
<th class="top left">Feature</th>
<th class="top" colspan="2">Success rate</th>
<th class="top">Scenarios</th>
<th class="top">Success</th>
<th class="top">Failed</th>
<th class="top">Pending</th>
<th class="top">Ignored</th>
</tr>
<xsl:apply-templates select="//nunit:test-suite[(child::nunit:results/nunit:test-case)]" mode="summary" />
</table>
<h2>Feature Execution Details</h2>
<xsl:apply-templates select="//nunit:test-suite[(child::nunit:results/nunit:test-case)]" />
</body>
</html>
</xsl:template>
<xsl:template match="nunit:test-suite" mode="summary">
<xsl:variable name="featureSummary">
<xsl:call-template name="get-summary" />
</xsl:variable>
<xsl:variable name="feature-id" select="generate-id()" />
<tr>
<td class="left">
<a href="#{$feature-id}"><xsl:call-template name="get-name"/></a>
</td>
<xsl:call-template name="summary-row">
<xsl:with-param name="summary" select="$featureSummary" />
</xsl:call-template>
</tr>
</xsl:template>
<xsl:template name="summary-row">
<xsl:param name="summary" />
<td>
<xsl:call-template name="get-success-rate">
<xsl:with-param name="summary" select="$summary" />
</xsl:call-template>
</td>
<td style="width:21em">
<xsl:call-template name="draw-bar">
<xsl:with-param name="summary" select="$summary" />
</xsl:call-template>
</td>
<td>
<xsl:value-of select="msxsl:node-set($summary)/*/all"/>
</td>
<td>
<xsl:value-of select="msxsl:node-set($summary)/*/success"/>
</td>
<td>
<xsl:value-of select="msxsl:node-set($summary)/*/failure"/>
</td>
<td>
<xsl:value-of select="msxsl:node-set($summary)/*/pending"/>
</td>
<td>
<xsl:value-of select="msxsl:node-set($summary)/*/ignored"/>
</td>
</xsl:template>
<xsl:template match="nunit:test-suite">
<xsl:variable name="feature-id" select="generate-id()" />
<a name="{$feature-id}" />
<h3>Feature: <xsl:call-template name="get-name"/></h3>
<table class="reportTable" cellpadding="0" cellspacing="0">
<tr>
<th class="top left">Scenario</th>
<th class="top" style="width: 5em">Status</th>
<th class="top" style="width: 5em">Time(s)</th>
</tr>
<xsl:apply-templates select=".//nunit:test-case" />
</table>
</xsl:template>
<xsl:template match="nunit:test-case">
<xsl:variable name="scenarioSummary">
<xsl:call-template name="get-summary">
<xsl:with-param name="nodes" select="." />
</xsl:call-template>
</xsl:variable>
<xsl:variable name="status" select="local-name(msxsl:node-set($scenarioSummary)/*/*[local-name()!='all' and text() = '1'])" />
<xsl:variable name="scenario-id" select="generate-id()" />
<xsl:variable name="testName" select="@name" />
<tr>
<td class="left">
<xsl:call-template name="get-name"/>
<xsl:if test="/sfr:NUnitExecutionReport/sfr:ScenarioOutput[@name = $testName]">
<xsl:text> </xsl:text>
<a href="#" onclick="toggle('out{$scenario-id}'); return false;" class="button">[show]</a>
</xsl:if>
</td>
<td class="{$status}">
<xsl:value-of select="$status"/>
<xsl:if test="$status = 'failure'">
<xsl:text> </xsl:text>
<a href="#" onclick="toggle('err{$scenario-id}'); return false;" class="button">[show]</a>
</xsl:if>
</td>
<td>
<xsl:choose>
<xsl:when test="@time">
<xsl:value-of select="@time"/>
</xsl:when>
<xsl:otherwise>N/A</xsl:otherwise>
</xsl:choose>
</td>
</tr>
<xsl:if test="/sfr:NUnitExecutionReport/sfr:ScenarioOutput[@name = $testName]">
<tr id="out{$scenario-id}" class="hidden">
<td class="left subRow" colspan="3">
<div class="failurePanel">
<pre>
<xsl:call-template name="scenario-output">
<xsl:with-param name="word" select="/sfr:NUnitExecutionReport/sfr:ScenarioOutput[@name = $testName]/sfr:Text"/>
</xsl:call-template>
</pre>
</div>
</td>
</tr>
</xsl:if>
<xsl:if test="$status = 'failure'">
<tr id="err{$scenario-id}" class="hidden">
<td class="left subRow" colspan="3">
<xsl:apply-templates select="nunit:failure" />
</td>
</tr>
</xsl:if>
</xsl:template>
<xsl:template match="nunit:failure">
<div class="failurePanel">
<xsl:choose>
<xsl:when test="not(nunit:message)">N/A</xsl:when>
<xsl:otherwise>
<b>
<xsl:call-template name="br-replace">
<xsl:with-param name="word" select="nunit:message"/>
</xsl:call-template>
</b>
</xsl:otherwise>
</xsl:choose>
<!-- display the stacktrace -->
<code>
<br/>
<xsl:call-template name="br-replace">
<xsl:with-param name="word" select="nunit:stack-trace"/>
</xsl:call-template>
</code>
</div>
</xsl:template>
<xsl:template name="br-replace">
<xsl:param name="word"/>
<xsl:choose>
<xsl:when test="contains($word,'&#xA;')">
<xsl:value-of select="substring-before($word,'&#xA;')"/>
<br/>
<xsl:call-template name="br-replace">
<xsl:with-param name="word" select="substring-after($word,'&#xA;')"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$word"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="scenario-output">
<xsl:param name="word"/>
<xsl:param name="traceMode" select="Normal" />
<xsl:choose>
<xsl:when test="contains($word,'&#xA;')">
<xsl:variable name="line" select="substring-before($word,'&#xA;')" />
<xsl:variable name="newTraceMode">
<xsl:call-template name="get-scenario-trace-mode">
<xsl:with-param name="text" select="$line" />
<xsl:with-param name="traceMode" select="$traceMode" />
</xsl:call-template>
</xsl:variable>
<xsl:call-template name="scenario-line-output">
<xsl:with-param name="text" select="$line" />
<xsl:with-param name="traceMode" select="$newTraceMode" />
</xsl:call-template>
<xsl:call-template name="scenario-output">
<xsl:with-param name="word" select="substring-after($word,'&#xA;')"/>
<xsl:with-param name="traceMode" select="$newTraceMode" />
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:variable name="newTraceMode">
<xsl:call-template name="get-scenario-trace-mode">
<xsl:with-param name="text" select="$word" />
<xsl:with-param name="traceMode" select="$traceMode" />
</xsl:call-template>
</xsl:variable>
<xsl:call-template name="scenario-line-output">
<xsl:with-param name="text" select="$word" />
<xsl:with-param name="traceMode" select="$newTraceMode" />
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="get-scenario-trace-mode">
<xsl:param name="text" />
<xsl:param name="traceMode" />
<xsl:choose>
<xsl:when test="starts-with($text, '->')">Trace</xsl:when>
<xsl:when test="$traceMode = 'Trace' and not(starts-with($text, ' '))">Normal</xsl:when>
<xsl:when test="$traceMode = 'Trace'">Trace</xsl:when>
<xsl:otherwise>Normal</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="scenario-line-output">
<xsl:param name="text" />
<xsl:param name="traceMode" />
<xsl:choose>
<xsl:when test="$traceMode = 'Trace'">
<span class="traceMessage">
<xsl:value-of select="$text"/>
</span>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$text"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="get-summary">
<xsl:param name="nodes" select=".//nunit:test-case" />
<testCaseSummary>
<all>
<xsl:value-of select="count($nodes)"/>
</all>
<success>
<xsl:value-of select="count($nodes[@executed = 'True' and @success='True'])"/>
</success>
<failure>
<xsl:value-of select="count($nodes[@executed = 'True' and @success='False' and nunit:failure])"/>
</failure>
<pending>
<xsl:value-of select="count($nodes[@executed = 'True' and @success='False' and not(nunit:failure)])"/>
</pending>
<ignored>
<xsl:value-of select="count($nodes[@executed = 'False'])"/>
</ignored>
</testCaseSummary>
</xsl:template>
<xsl:template name="get-success-rate">
<xsl:param name="summary" />
<xsl:value-of select="round(msxsl:node-set($summary)/*/success * 100 div msxsl:node-set($summary)/*/all)"/>
<xsl:text>%</xsl:text>
</xsl:template>
<xsl:template name="draw-bar">
<xsl:param name="summary" />
<xsl:variable name="testCount" select="msxsl:node-set($summary)/*/all" />
<xsl:variable name="successWidth" select="(msxsl:node-set($summary)/*/success * 20 div $testCount)" />
<xsl:variable name="failureWidth" select="(msxsl:node-set($summary)/*/failure * 20 div $testCount)" />
<xsl:variable name="pendingWidth" select="(msxsl:node-set($summary)/*/pending * 20 div $testCount)" />
<xsl:variable name="ignoredWidth" select="(msxsl:node-set($summary)/*/ignored * 20 div $testCount)" />
<div class="bar">
<xsl:if test="$successWidth != 0">
<div class="success" style="width:{$successWidth}em" title="{msxsl:node-set($summary)/*/success} succeeded">
</div>
</xsl:if>
<xsl:if test="$failureWidth != 0">
<div class="failure" style="width:{$failureWidth}em" title="{msxsl:node-set($summary)/*/failure} failed">
</div>
</xsl:if>
<xsl:if test="$pendingWidth != 0">
<div class="pending" style="width:{$pendingWidth}em" title="{msxsl:node-set($summary)/*/pending} pending/not bound">
</div>
</xsl:if>
<xsl:if test="$ignoredWidth != 0">
<div class="ignored" style="width:{$ignoredWidth}em" title="{msxsl:node-set($summary)/*/ignored} ignored">
</div>
</xsl:if>
</div>
</xsl:template>
<xsl:template name="get-name">
<xsl:choose>
<xsl:when test="./@description">
<span title="{@name}">
<xsl:value-of select="./@description"/>
</span>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="./@name"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
BSJB v2.0.50727lP#~¼È#Strings„78#US¼;#GUIDÌ;Ô #BlobW¢ ú3@]iZ+ 
ž
°¥
¼¥Ê8cêÀ
R¥Ê¢üA¢O¢Ó´çõ¢¢¢lWƒxœ6&Yo
¿¦ÚÀ
ÿ
#¥
-ÿH>
¥Ä ´Ã Î R
 9VmŠ©ÂÛöI*]*~kÃÁ¡á¡ ¡
¦
/¦
@¦
V¦rˆ¬Ãå 
$¥C>O>\n|>®
Ù¥
ã¥
÷¥
¥
#¥
4¥v>ƒÊ¢î¢d¢¢¢T¢+ƒÊùk¢¢¢"H<V´q´w´Ô´6d¡ÎÂìÙ !Ù-¢1¢
ˆ¦¬À  ¨FmêÀ=e©<»>È>Ý>
êÿ÷>>)>2>=c˜µ´K4*?¬?·?Ãá
0 a?kzº? É !Ö #ê!&ÿ?!'?&(') !'.2(0=
(4Oz)8 d/9 q2@}9O¢=Xã?Z@\V€Ý
ê
ö
F?I


Žcf!ús!

!
!ús!š!Ò¢!áFª ®¸!+I=#`O
+

1
6
AõE;IlåF¬Š·ŽùõE
c·!Y
V€Ý
V€‡
ê
ö
¡!´%
 c6 cT
u
`
°
dÇ
·ç
F F!d }!y }4 | µc íöEúsÐ OQä UU!m]4!OQ<!OQD!Owi!O~Œ!2Q
¼"A
#^ ˜#p ü#OÂ
e$Oɘ$2ÜÌ'_á¨(èÌ)õ\*£ø*Ù,Ùt,p$- 0$#€1+$ø12%@2#9&à,(h1B2)Ð1QF*Û2OQ+ã2OQ+ë2OQ+(3EQ+x3E\, 4Æ p.u4ƪy14OQ2ˆ4Æ26OQ36OQ3$6/š3¨6/¡5ô6@©77@¯8,7OQ:47O»:H7Á;œ7šÉ=À7ÍÎ>8ñÖA<9OâF:OðK,:O÷Mˆ:aþOÀ:ÆsQØ:OQQì:ÄQ;ÑQ ;Þ-R#;ç1R,;ð-SC;û1SL;OQTT;Z Tk;n •Tt; :U;“ ?U”;¤ V«;´ •V´;Ê EWË;Ô KWÔ;Þ RXë;ñ »Xô;
WY <
[Y<4
WZ+<D
[Z4<OQ[<<OQ[„< [Ü<­ ]=Ø _´>ó ©bì> °c? ºd\= fx=[ gœ+OQh¤+Àñh×,OQhø,hÿ2OQi3Ài  & ) 
ú
5 ? K ) Z áúÒád d t  t    Ÿ  K ¥ ° ¼ Ê Þ ã é Þ í 4O^úú 

#
(
9
) ?
D
?
ccf
ccp
w
K |
K |

K