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

2734 lines
107 KiB
Plaintext
Raw Normal View History

MZÿÿ¸@º´ Í!¸LÍ!This program cannot be run in DOS mode.
2011-11-29 10:06:13 -08:00
$PEL×̦Nà! ¤®Â à@  ˜Á@…SภÀÁ  H.text´¢ ¤ `.rsrc¸à¦@@.reloc ª@BÂHllTU Ø>”-P \:e’9(“àA3È|Ëø½J£ü?ŸÊSÁŽk+é
Ó¯ÌÏçæñáyÃU’R?è S*,d?û4n
)Ž1 ýùTÞÑ–2™ÍøÞÊMkh*Te%Ëi¥lÊÚ2‹™ÝÐÜÒigÓ?'h·¼ 9d
ôyPV ÷¬­ë7Ò(,(+#Ð(
rp$(
o
&*~**Zr7p(
þþ(*¶Ð(
rQp$o
o
(
2010-11-14 14:32:41 -08:00
(
2011-11-29 10:06:13 -08:00
o
*0>
(
o
+# š o
o!
o"
,
X Ži2Ö*(#
*0S?
, o$
š (%
rp(
(&
Þ&(%
rp(
(&
Þ& Þ*3L20,
+ š
( , ÞX Ži2ß**2(
( *0s

þs'
o(
*(#
*:(#
}*0o*
{(  *{*"}*{*"}*{*"}*(#
*{*"}*{*"}*{*"}*{ *"} *{
*"}
*{ *"} *{ *"} *(#
*06o+

+$ š
ÐC(
(,
,(& X
Ži2Ö*0Z<o-
+D š
ÐE(
(.
,%+š ('XŽi2ãX Ži2µ*2o/
o0
*o1
*0 r•pr™p(+r¥p(2
s3
o4
Ži,ŽiYšo/
o0
p(5
+ s$((oopo6
o7
o0
p~
-þ,s8
~
(+(+(;
(<
o~-þ-s8
~(+(+oo!o#
 o=
*0$ o>
o0
o?
po?
Yo@
*0
(A
2010-11-14 14:32:41 -08:00
2011-11-29 10:06:13 -08:00
sB
(%*0 sB
(C
oD
(E
sF
oG
p(H
<¢(  (C
o
oI
Ð(
o7
oJ
toK
oL
o)oM
(N
*(O
*(>
*0i Ð(
r psP
o.oA(,o.oA(*o/o.oAoQ
oR
o.o?*0"
o.oC(S
2011-11-29 10:06:13 -08:00
o2 (0*0PsN
oK
oT
}(U
rCp(V
(W
}o4 oX
}o3**(#
*{*.Ð(
*:(5}*FrGp{s<*0ÖsY
}{{oFoZ
{po[
o\
}(9
s]
Ð
(
ps\ s€
s^
 o_
Þ
,o`
Üsa
(b
sc
{od
Þ ,o`
Üoe
sf
sY
og
*_z
© 0[sh
si
p{oj
{pok
-*ol
  om
2011-11-29 10:06:13 -08:00
tQ
on
r!poo
{r/pop
(q
or
uQon
rpoo
9op
?  , o$
šos
on
poo
,N r¯por
  ,<{sO

pop
(2
}
 ot
} 
ou
 ov
:þþÿÿÞ uU

,
o`
Ü*A< EV(h
}}*{(w
,
{(x
*(x
*>sy
oz
*{*"}*{*"}*{*"}(#
(D({
(B(|
-({
+p(@*{*"}*^(E({
(G*{*:(5}*0{ot(}
,z{ots~
p s
+< rýpo€
,((L ?* o
+ o

%
(LÞ
,o`
Ü*#_
0?o„
15{sO
}(
o…
(;
} ou
o†
*0UsY
sh
si
prpoj
{ovs‡
sˆ
(‰

Þ
,o`
Ü*@ I
Js
}(#
*(#
*(#
*J{EoK
(
*0Ds…
}E{Eo
þs“
(+{EoQ
oR
o”
(Q*0]s•
o
+4o—
s˜
s~
 o™

Þ
, o`
Üov
-ÃÞ ,o`
Ü*&:
AO fo>
o

¥ *(#
*(#
*(#
*(#
*(#
*J
}0(#
*Js 
}5(#


Œ?
([*:sh
(]*

Œ?
(]*0L (^


(
rpo
o!

}6*0
-r?p(q
z*{6*{>*"}>*0i s 
}=(#
(aoC(S
}7{7(P}9{7oK
o­
oy(%
{7(*}8*0õsY}:{:{7oK
oT
}2{:(U
2011-11-29 10:06:13 -08:00


rCp(V
(W
}3{:(`o{}4
};
}<{8
+^
sX sS o}!}.o}-{;
{<
{:{5o´

-™Þþo`
Ü{9

sT  o¸
}#
}" 
,-sWrsp}+
(k
+~šsW


}+

,
{¿
+},
u,t(d  (k+
(kXŽi?wÿÿÿ
:üþÿÿÞþo`
Ü{:{5

  {/- (g {0
- }0 {/
-' {/Ðu(
 {-
¥u
 {/
-' {/Ðw(
 {-
¥w

:ZÿÿÿÞþo`
Ü{:*ALkí 3­à0®
8…š

+_š

+.
šoÒ

šoÒ
X

Ži2½(eÞŽi2™XŽi?pÿÿÿsÔ
**0Ø


(l o×
(f

(f

,]
+Cš
 +" š
(f
 X  Ži2ÖXŽi2µ

:RÿÿÿÞþo`
Ü*µÈ0Y,-*
+-
r‰p
rp(2


-ÊÞþo`
Ü*:I0{<
{-% ,Prp(5
-rp(5
-p(5
-+'
}/+ 
}/+
}/+
z{/(i
*0

Y +dY oŽi/pošrµp(2
+p




&
&Y /˜
*(#
*0H{F{GoŽi/-r±p{Go%{F%
X}Fšrµp(2
*r¹p*0]s‡ }G{Go
?
$ ^ o
psó
}Fþˆ
*0x Ð(
r psP
(`oA(,{:(`oA(*{:(>
(`oA{7oQ
2010-11-14 14:32:41 -08:00
oR
2011-11-29 10:06:13 -08:00
(`o?*(#
2010-11-14 14:32:41 -08:00
*
2011-11-29 10:06:13 -08:00
*r{/o×
{Ho×
*0 

s‰8n
}H{H
Œu
 {8
8j
o
:Qo{Ho×
9.sU  }$ {H}( }% }& 
(+(+~?-þqsÿ
€?~?(+(+Ži1]s
}'+7{'sVoš})š}*o
XŽioŽi(
2´{;o
{0o
{/-5{H(o}/{/{/o×
(h
 + 
:ŠþÿÿÞþo`
Ü{=
-þŠs


(+

2010-11-14 14:32:41 -08:00
-CsX
2011-11-29 10:06:13 -08:00

}-
{H(o}/{=
o´
{:{5
o´
sU  }$ {H}( }% }&  
{0 o
ov
:†ýÿÿÞ ,o`
Ü*A4K}È 0 
u},
+>u~,
+.u,
+u‡,s
+uˆ,s
o×


(mo 


*"(n-*
(n
þrs

( +(
+s 
*0!s 


~@-þss

€@~@( +( +s
*0v 
rp(5
,
+p(5
,
+
o×


(mo 


*:(c&(j*{A*"}A*{B*"}B(E({
(w(|
-({
+p(u*{C*"}C*{D*"}D*j(E(z(|*0e"(
-po
o"
-
(
*o
? 
o
o
( 
*V(,(*(A
*(
*J
po"
*0.#p(
(b
s
o
Þ
,o`
Ü*
#
0Ù$s
o
s]
s^
o0
rÿprëpoã
(„s€
 o_
Þ ,o`
Ü
s
s
s
rprëpo”
o
o
r5prëpo
o
o
(b
s 
 o!
Þ ,o`
Ü*?Q ½Ì (|
,rQp(
sZ*s"
*S*<?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, event){
var link;
if(window.event) {
link = window.event.srcElement;
} else {
link = event.target;
}
toToggle=document.getElementById(sdid);
if (link.innerHTML==showButtonText)
{
link.innerHTML=hideButtonText;
toToggle.style.display="block";
}
else
{
link.innerHTML=showButtonText;
toToggle.style.display="none";
}
}
function copyToClipboard(s)
{
if (window.clipboardData)
{
window.clipboardData.setData('Text',s);
}
else
{
try
{
netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
}
catch(e)
{
alert("The clipboard copy didn't work.\nYour browser doesn't allow Javascript clipboard copy.\nIf you want to change its behaviour: \n1.Open a new browser window\n2.Enter the URL: about:config\n3.Change the signed.applets.codebase_principal_support property to true");
return;
}
var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);
var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);
trans.addDataFlavor('text/unicode');
var len = new Object();
var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
str.data=s;
trans.setTransferData("text/unicode",str,s.length*2);
var clipid=Components.interfaces.nsIClipboard;
clip.setData(trans,null,clipid.kGlobalClipboard);
}
}
]]>
</script>
</xsl:template>
<xsl:template name="html-copy-step-to-clipboard-script">
<script>
<![CDATA[
function getInnerText(elm)
{
if (elm.textContent)
return elm.textContent;
return elm.innerText;
}
function copyStepToClipboard(stepId)
{
text=document.getElementById("txt" + stepId);
tableArg=document.getElementById("tbl" + stepId);
result = getInnerText(text);
if (tableArg != null)
{
result += "\r\n";
result += getTableSource(tableArg);
}
copyToClipboard(result);
}
function getTableSource(table)
{
indent = " ";
var rows = table.getElementsByTagName("tr");
header = rows[0].cells;
columnWidths = new Array();
for (colIndex = 0; colIndex < header.length; colIndex++)
columnWidths[colIndex] = header[colIndex].innerHTML.length;
for (rowIndex = 1; rowIndex < rows.length; rowIndex++)
{
row = rows[rowIndex].cells;
for (colIndex = 0; colIndex < header.length; colIndex++)
if (row[colIndex].innerHTML.length > columnWidths[colIndex])
columnWidths[colIndex] = row[colIndex].innerHTML.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].innerHTML;
for (i = row[colIndex].innerHTML.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>
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>
C.<?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"
xmlns:mstest="http://microsoft.com/schemas/VisualStudio/TeamTest/2006"
exclude-result-prefixes="msxsl nunit sfr">
<xsl:output method="xml" />
<xsl:key name="unit-test-result" match="mstest:UnitTestResult" use="@testId"/>
<xsl:template name="get-last-part">
<xsl:param name="text" />
<xsl:param name="delimiter" />
<xsl:choose>
<xsl:when test="contains($text, $delimiter)">
<xsl:call-template name="get-last-part">
<xsl:with-param name="text" select="substring-after($text,$delimiter)" />
<xsl:with-param name="delimiter" select="$delimiter" />
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$text"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="/mstest:TestRun">
<nunit:test-results>
<xsl:attribute name="name">
<xsl:value-of select="@name"/>
</xsl:attribute>
<xsl:variable name="startTime" select="mstest:Times/@start" /> <!-- start="2010-06-20T21:54:47.1619417+02:00" -->
<xsl:attribute name="date">
<xsl:value-of select="substring($startTime, 1, 10)"/>
</xsl:attribute>
<xsl:attribute name="time">
<xsl:value-of select="substring($startTime, 12, 8)"/>
</xsl:attribute>
<xsl:apply-templates select="mstest:ResultSummary" />
<xsl:for-each select="mstest:TestDefinitions/mstest:UnitTest">
<xsl:variable name="className" select="mstest:TestMethod/@className" />
<xsl:if test="not(preceding-sibling::mstest:UnitTest[mstest:TestMethod/@className=$className])">
<xsl:variable name="unitTests" select="//mstest:UnitTest[mstest:TestMethod/@className=$className]"/>
<nunit:test-suite type="TestFixture" result="Failure" success="False">
<xsl:attribute name="name">
<xsl:call-template name="get-last-part">
<xsl:with-param name="text" select="substring-before(mstest:TestMethod/@className, ',')" />
<xsl:with-param name="delimiter" select="'.'" />
</xsl:call-template>
<!--<xsl:value-of select="substring-before(mstest:TestMethod/@className, ',')"/>-->
</xsl:attribute>
<!-- SpecFlow specific conversion -->
<xsl:if test="mstest:Properties/mstest:Property[string(mstest:Key)='FeatureTitle']">
<xsl:attribute name="description">
<xsl:value-of select="mstest:Properties/mstest:Property[string(mstest:Key)='FeatureTitle']/mstest:Value"/>
</xsl:attribute>
</xsl:if>
<xsl:attribute name="executed">True</xsl:attribute>
<xsl:attribute name="success">
<xsl:choose>
<xsl:when test="$unitTests[key('unit-test-result', @id)/@outcome!='Passed']">
<xsl:text>False</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>True</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<xsl:attribute name="result">
<xsl:choose>
<xsl:when test="$unitTests[key('unit-test-result', @id)/@outcome='Failed']">
<xsl:text>Failure</xsl:text>
</xsl:when>
<xsl:when test="$unitTests[key('unit-test-result', @id)/@outcome='Inconclusive']">
<xsl:text>Inconclusive</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>Success</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<xsl:attribute name="time">0.000</xsl:attribute>
<xsl:attribute name="asserts">0</xsl:attribute>
<nunit:results>
<xsl:apply-templates select="$unitTests" />
</nunit:results>
</nunit:test-suite>
</xsl:if>
</xsl:for-each>
</nunit:test-results>
</xsl:template>
<xsl:template match="mstest:ResultSummary">
<!--
<Counters total="4" executed="4" passed="2" error="0" failed="1" timeout="0"
aborted="0" inconclusive="1" passedButRunAborted="0" notRunnable="0"
notExecuted="0" disconnected="0" warning="0" completed="0" inProgress="0"
pending="0" />
total="4" errors="0" failures="1" not-run="1" inconclusive="1" ignored="1" skipped="0" invalid="0"
-->
<xsl:attribute name="total">
<xsl:value-of select="mstest:Counters/@total"/>
</xsl:attribute>
<xsl:attribute name="errors">
<xsl:value-of select="mstest:Counters/@error"/>
</xsl:attribute>
<xsl:attribute name="failures">
<xsl:value-of select="mstest:Counters/@failed"/>
</xsl:attribute>
<xsl:attribute name="inconclusive">
<xsl:value-of select="mstest:Counters/@inconclusive"/>
</xsl:attribute>
<xsl:attribute name="ignored">0</xsl:attribute>
<!--<xsl:attribute name="not-run">
</xsl:attribute>-->
<!--<xsl:attribute name="skipped">
<xsl:value-of select="mstest:Counters/@notExecuted"/>
</xsl:attribute>-->
<!--<xsl:attribute name="invalid">
<xsl:value-of select="mstest:Counters/@notRunnable"/>
</xsl:attribute>-->
</xsl:template>
<xsl:template match="mstest:UnitTest">
<!--
input (MsTest):
<UnitTest name="ScenarioWithPendingSteps"
storage="c:\users\jba\dev\code\specflowexamples\mstestconversion\reportingtest.mstestsampleproject\bin\debug\reportingtest.mstestsampleproject.dll"
id="e0c798ae-34fe-8aec-156d-98ed561da84b">
<Css projectStructure="" iteration="" />
<Execution timeOut="1800000" id="6c9f7dc0-04e5-4820-b965-35e67ab5b8dc" />
<Description>Scenario with pending steps</Description>
<Owners>
<Owner name="" />
</Owners>
<Properties>
<Property>
<Key>FeatureTitle</Key>
<Value>Feature with failing scenarios</Value>
</Property>
</Properties>
<TestMethod codeBase="C:/Users/jba/Dev/Code/SpecFlowExamples/MsTestConversion/ReportingTest.MSTestSampleProject/bin/Debug/ReportingTest.MSTestSampleProject.DLL" adapterTypeName="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestAdapter, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.Adapter" className="ReportingTest.MSTestSampleProject.FeatureWithFailingScenariosFeature, ReportingTest.MSTestSampleProject, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" name="ScenarioWithPendingSteps" />
</UnitTest>
<UnitTestResult executionId="6c9f7dc0-04e5-4820-b965-35e67ab5b8dc"
testId="e0c798ae-34fe-8aec-156d-98ed561da84b"
testName="ScenarioWithPendingSteps"
computerName="TTV-JBA01"
duration="00:00:03.4117534"
startTime="2010-06-29T21:54:47.5419634+02:00"
endTime="2010-06-29T21:54:50.9541586+02:00"
testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b"
outcome="Inconclusive"
testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d">
<Output>
<StdOut>{stdout}</StdOut>
<ErrorInfo>
<Message>{errorMessgage}</Message>
<StackTrace>{stackTrace}</StackTrace>
</ErrorInfo>
</Output>
</UnitTestResult>
output (NUnit):
<test-case name="ReportingTest.SampleProject.FeatureWithFailingScenariosFeature.ScenarioWithPendingSteps"
description="Scenario with pending steps"
executed="True"
result="Inconclusive"
success="False"
time="0.106"
asserts="0">
<reason>
<message>{errorMessgage}</message>
</reason>
</test-case>
-->
<nunit:test-case>
<xsl:variable name="id" select="@id" />
<!--<xsl:variable name="testResult" select="/mstest:TestRun/mstest:Results/mstest:UnitTestResult[@testId=$id]" />-->
<xsl:variable name="testResult" select="key('unit-test-result', $id)" />
<xsl:attribute name="name">
<xsl:value-of select="substring-before(mstest:TestMethod/@className, ',')"/>.<xsl:value-of select="@name"></xsl:value-of>
</xsl:attribute>
<xsl:attribute name="description">
<xsl:value-of select="mstest:Description" />
<xsl:if test="mstest:Properties/mstest:Property[string(mstest:Key)='VariantName']">
<xsl:text>(</xsl:text>
<xsl:for-each select="mstest:Properties/mstest:Property[string(mstest:Key)='VariantName']">
<xsl:value-of select="mstest:Value"/>
</xsl:for-each>
<xsl:text>)</xsl:text>
</xsl:if>
</xsl:attribute>
<xsl:attribute name="executed">True</xsl:attribute>
<xsl:attribute name="result">
<xsl:choose>
<xsl:when test="$testResult/@outcome='Failed'">
<xsl:text>Failure</xsl:text>
</xsl:when>
<xsl:when test="$testResult/@outcome='Inconclusive'">
<xsl:text>Inconclusive</xsl:text>
</xsl:when>
<xsl:when test="$testResult/@outcome='Passed'">
<xsl:text>Success</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>???</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<xsl:attribute name="success">
<xsl:choose>
<xsl:when test="$testResult/@outcome='Passed'">
<xsl:text>True</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>False</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<xsl:attribute name="time">
<xsl:value-of select="(substring($testResult/@duration, 1, 2) * 60 * 60) +
(substring($testResult/@duration, 4, 2) * 60) +
(substring($testResult/@duration, 7, 2)) +
(substring($testResult/@duration, 9, 4))"/>
</xsl:attribute>
<xsl:attribute name="asserts">1</xsl:attribute>
<xsl:if test="$testResult/@outcome='Inconclusive'">
<nunit:reason>
<nunit:message>
<xsl:value-of select="$testResult/mstest:Output/mstest:ErrorInfo/mstest:Message"/>
</nunit:message>
</nunit:reason>
</xsl:if>
<xsl:if test="$testResult/@outcome='Failed'">
<nunit:failure>
<nunit:message>
<xsl:value-of select="$testResult/mstest:Output/mstest:ErrorInfo/mstest:Message"/>
</nunit:message>
<nunit:stack-trace>
<xsl:value-of select="$testResult/mstest:Output/mstest:ErrorInfo/mstest:StackTrace"/>
</nunit:stack-trace>
</nunit:failure>
</xsl:if>
</nunit:test-case>
</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}', event); 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"?>
<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[@type='TestFixture'])"/> 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[@type='TestFixture']" mode="summary">
<xsl:sort select="@description" />
<xsl:sort select="@name"/>
</xsl:apply-templates>
</table>
<h2>Feature Execution Details</h2>
<xsl:apply-templates select="//nunit:test-suite[@type='TestFixture']">
<xsl:sort select="@description" />
<xsl:sort select="@name"/>
</xsl:apply-templates>
</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><xsl:call-template name="get-keyword">
<xsl:with-param name="keyword" select="'Feature'" />
</xsl:call-template>: <xsl:call-template name="get-name"/></h3>
<table class="reportTable" cellpadding="0" cellspacing="0">
<tr>
<th class="top left">
<xsl:call-template name="get-keyword">
<xsl:with-param name="keyword" select="'Scenario'" />
</xsl:call-template>
</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}', event); 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>
<td class="{$status}">
<xsl:value-of select="$status"/>
<xsl:if test="$status = 'failure'">
<xsl:text> </xsl:text>
<a href="#" onclick="toggle('err{$scenario-id}', event); 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>
<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">
<xsl:text disable-output-escaping="yes"><![CDATA[&nbsp;]]></xsl:text>
</div>
</xsl:if>
<xsl:if test="$failureWidth != 0">
<div class="failure" style="width:{$failureWidth}em" title="{msxsl:node-set($summary)/*/failure} failed">
<xsl:text disable-output-escaping="yes"><![CDATA[&nbsp;]]></xsl:text>
</div>
</xsl:if>
<xsl:if test="$pendingWidth != 0">
<div class="pending" style="width:{$pendingWidth}em" title="{msxsl:node-set($summary)/*/pending} pending/not bound">
<xsl:text disable-output-escaping="yes"><![CDATA[&nbsp;]]></xsl:text>
</div>
</xsl:if>
<xsl:if test="$ignoredWidth != 0">
<div class="ignored" style="width:{$ignoredWidth}em" title="{msxsl:node-set($summary)/*/ignored} ignored">
<xsl:text disable-output-escaping="yes"><![CDATA[&nbsp;]]></xsl:text>
</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:when test="../../@type='ParameterizedTest' and ../../@description">
<span title="{@name}">
<xsl:value-of select="../../@description"/>
<xsl:text>(</xsl:text>
<xsl:value-of select="substring-after(./@name,'(')"/>
</span>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="./@name"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
èX<?xml version="1.0" encoding="utf-8"?>
<SpecFlowLanguages>
<Language code="ar" cultureInfo="ar" defaultSpecificCulture="ar-SA" englishName="Arabic">
<Feature>خاصية</Feature>
<Background>الخلÙية</Background>
<Scenario>سيناريو</Scenario>
<ScenarioOutline>سيناريو مخطط</ScenarioOutline>
<Examples>امثلة</Examples>
<Given>Ø¨ÙØ±Ø¶</Given>
<When>متى</When>
<When>عندما</When>
<Then>اذاً</Then>
<Then>ثم</Then>
<And>Ùˆ</And>
<But>لكن</But>
</Language>
<Language code="bg" cultureInfo="bg" defaultSpecificCulture="bg-BG" englishName="Bulgarian">
<Feature>ФункционалноÑÑ‚</Feature>
<Background>ПредиÑториÑ</Background>
<Scenario>Сценарий</Scenario>
<ScenarioOutline>Рамка на Ñценарий</ScenarioOutline>
<Examples>Примери</Examples>
<Given>Дадено</Given>
<When>Когато</When>
<Then>То</Then>
<And>И</And>
<But>Ðо</But>
</Language>
<Language code="ca" cultureInfo="ca" defaultSpecificCulture="ca-ES" englishName="Catalan">
<Feature>Característica</Feature>
<Feature>Funcionalitat</Feature>
<Background>Rerefons</Background>
<Background>Antecedents</Background>
<Scenario>Escenari</Scenario>
<ScenarioOutline>Esquema de l'escenari</ScenarioOutline>
<Examples>Exemples</Examples>
<Given>Donat</Given>
<Given>Donada</Given>
<Given>Atès</Given>
<Given>Atesa</Given>
<When>Quan</When>
<Then>Aleshores</Then>
<Then>Cal</Then>
<And>I</And>
<But>Però</But>
</Language>
<Language code="cs" cultureInfo="cs" defaultSpecificCulture="cs-CZ" englishName="Czech">
<Feature>Požadavek</Feature>
<Background>Pozadí</Background>
<Background>Kontext</Background>
<Scenario>Scénář</Scenario>
<ScenarioOutline>NáÄrt Scénáře</ScenarioOutline>
<ScenarioOutline>Osnova scénáře</ScenarioOutline>
<Examples>Příklady</Examples>
<Given>Pokud</Given>
<When>Když</When>
<Then>Pak</Then>
<And>A</And>
<And>A také</And>
<But>Ale</But>
</Language>
<Language code="cy-GB" cultureInfo="cy-GB" englishName="Welsh (United Kingdom)">
<Feature>Arwedd</Feature>
<Background>Cefndir</Background>
<Scenario>Scenario</Scenario>
<ScenarioOutline>Scenario Amlinellol</ScenarioOutline>
<Examples>Enghreifftiau</Examples>
<Given>Anrhegedig a</Given>
<When>Pryd</When>
<Then>Yna</Then>
<And>A</And>
<But>Ond</But>
</Language>
<Language code="da" cultureInfo="da" defaultSpecificCulture="da-DK" englishName="Danish">
<Feature>Egenskab</Feature>
<Background>Baggrund</Background>
<Scenario>Scenarie</Scenario>
<ScenarioOutline>Abstrakt Scenario</ScenarioOutline>
<Examples>Eksempler</Examples>
<Given>Givet</Given>
<When>NÃ¥r</When>
<Then>SÃ¥</Then>
<And>Og</And>
<But>Men</But>
</Language>
<Language code="de" cultureInfo="de" defaultSpecificCulture="de-DE" englishName="German">
<Feature>Funktionalität</Feature>
<Background>Grundlage</Background>
<Scenario>Szenario</Scenario>
<ScenarioOutline>Szenariogrundriss</ScenarioOutline>
<Examples>Beispiele</Examples>
<Given>Angenommen</Given>
<Given>Gegeben sei</Given>
<When>Wenn</When>
<Then>Dann</Then>
<And>Und</And>
<But>Aber</But>
</Language>
<Language code="en" cultureInfo="en" defaultSpecificCulture="en-US" englishName="English">
<Feature>Feature</Feature>
<Background>Background</Background>
<Scenario>Scenario</Scenario>
<ScenarioOutline>Scenario Outline</ScenarioOutline>
<ScenarioOutline>Scenario Template</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="en-AU" cultureInfo="en-AU" englishName="English (Australia)">
<Feature>Crikey</Feature>
<Background>Background</Background>
<Scenario>Mate</Scenario>
<ScenarioOutline>Blokes</ScenarioOutline>
<Examples>Cobber</Examples>
<Given>Ya know how</Given>
<When>When</When>
<Then>Ya gotta</Then>
<And>N</And>
<But>Cept</But>
</Language>
<Language code="en-LOL" cultureInfo="en" englishName="English">
<Feature>OH HAI</Feature>
<Background>B4</Background>
<Scenario>MISHUN</Scenario>
<ScenarioOutline>MISHUN SRSLY</ScenarioOutline>
<Examples>EXAMPLZ</Examples>
<Given>I CAN HAZ</Given>
<When>WEN</When>
<Then>DEN</Then>
<And>AN</And>
<But>BUT</But>
</Language>
<Language code="en-PIRATE" cultureInfo="en" englishName="English">
<Feature>Ahoy matey!</Feature>
<Background>Yo-ho-ho</Background>
<Scenario>Heave to</Scenario>
<ScenarioOutline>Shiver me timbers</ScenarioOutline>
<Examples>Dead men tell no tales</Examples>
<Given>Gangway!</Given>
<When>Blimey!</When>
<Then>Let go and haul</Then>
<And>Aye</And>
<But>Avast!</But>
</Language>
<Language code="en-SCOUSE" cultureInfo="en" englishName="English">
<Feature>Feature</Feature>
<Background>Dis is what went down</Background>
<Scenario>The thing of it is</Scenario>
<ScenarioOutline>Wharrimean is</ScenarioOutline>
<Examples>Examples</Examples>
<Given>Givun</Given>
<Given>Youse know when youse got</Given>
<When>Wun</When>
<When>Youse know like when</When>
<Then>Dun</Then>
<Then>Den youse gotta</Then>
<And>An</And>
<But>Buh</But>
</Language>
<Language code="en-TX" cultureInfo="en" englishName="English">
<Feature>Feature</Feature>
<Background>Background</Background>
<Scenario>Scenario</Scenario>
<ScenarioOutline>All y'all</ScenarioOutline>
<Examples>Examples</Examples>
<Given>Given y'all</Given>
<When>When y'all</When>
<Then>Then y'all</Then>
<And>And y'all</And>
<But>But y'all</But>
</Language>
<Language code="es" cultureInfo="es" defaultSpecificCulture="es-ES" englishName="Spanish">
<Feature>Característica</Feature>
<Background>Antecedentes</Background>
<Scenario>Escenario</Scenario>
<ScenarioOutline>Esquema del escenario</ScenarioOutline>
<Examples>Ejemplos</Examples>
<Given>Dado</Given>
<When>Cuando</When>
<Then>Entonces</Then>
<And>Y</And>
<But>Pero</But>
</Language>
<Language code="et" cultureInfo="et" defaultSpecificCulture="et-EE" englishName="Estonian">
<Feature>Omadus</Feature>
<Background>Taust</Background>
<Scenario>Stsenaarium</Scenario>
<ScenarioOutline>Raamstsenaarium</ScenarioOutline>
<Examples>Juhtumid</Examples>
<Given>Eeldades</Given>
<When>Kui</When>
<Then>Siis</Then>
<And>Ja</And>
<But>Kuid</But>
</Language>
<Language code="fi" cultureInfo="fi" defaultSpecificCulture="fi-FI" englishName="Finnish">
<Feature>Ominaisuus</Feature>
<Background>Tausta</Background>
<Scenario>Tapaus</Scenario>
<ScenarioOutline>Tapausaihio</ScenarioOutline>
<Examples>Tapaukset</Examples>
<Given>Oletetaan</Given>
<When>Kun</When>
<Then>Niin</Then>
<And>Ja</And>
<But>Mutta</But>
</Language>
<Language code="fr" cultureInfo="fr" defaultSpecificCulture="fr-FR" englishName="French">
<Feature>Fonctionnalité</Feature>
<Background>Contexte</Background>
<Scenario>Scénario</Scenario>
<ScenarioOutline>Plan du scénario</ScenarioOutline>
<ScenarioOutline>Plan du Scénario</ScenarioOutline>
<Examples>Exemples</Examples>
<Given>Soit</Given>
<Given>Etant donné</Given>
<When>Quand</When>
<When>Lorsque</When>
<When>Lorsqu'</When>
<Then>Alors</Then>
<And>Et</And>
<But>Mais</But>
</Language>
<Language code="he" cultureInfo="he" defaultSpecificCulture="he-IL" englishName="Hebrew">
<Feature>תכונה</Feature>
<Background>רקע</Background>
<Scenario>תרחיש</Scenario>
<ScenarioOutline>תבנית תרחיש</ScenarioOutline>
<Examples>דוגמ×ות</Examples>
<Given>בהינתן</Given>
<When>×›×שר</When>
<Then>××–</Then>
<Then>××–×™</Then>
<And>וג×</And>
<But>×בל</But>
</Language>
<Language code="hr" cultureInfo="hr" defaultSpecificCulture="hr-HR" englishName="Croatian">
<Feature>Osobina</Feature>
<Feature>Mogućnost</Feature>
<Feature>Mogucnost</Feature>
<Background>Pozadina</Background>
<Scenario>Scenarij</Scenario>
<ScenarioOutline>Skica</ScenarioOutline>
<ScenarioOutline>Koncept</ScenarioOutline>
<Examples>Primjeri</Examples>
<Examples>Scenariji</Examples>
<Given>Zadan</Given>
<Given>Zadani</Given>
<Given>Zadano</Given>
<When>Kada</When>
<When>Kad</When>
<Then>Onda</Then>
<And>I</And>
<But>Ali</But>
</Language>
<Language code="hu" cultureInfo="hu" defaultSpecificCulture="hu-HU" englishName="Hungarian">
<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>Amennyiben</Given>
<Given>Adott</Given>
<When>Majd</When>
<When>Ha</When>
<When>Amikor</When>
<Then>Akkor</Then>
<And>És</And>
<But>De</But>
</Language>
<Language code="id" cultureInfo="id" defaultSpecificCulture="id-ID" englishName="Indonesian">
<Feature>Fitur</Feature>
<Background>Dasar</Background>
<Scenario>Skenario</Scenario>
<ScenarioOutline>Skenario konsep</ScenarioOutline>
<Examples>Contoh</Examples>
<Given>Dengan</Given>
<When>Ketika</When>
<Then>Maka</Then>
<And>Dan</And>
<But>Tapi</But>
</Language>
<Language code="it" cultureInfo="it" defaultSpecificCulture="it-IT" englishName="Italian">
<Feature>Funzionalità</Feature>
<Background>Contesto</Background>
<Scenario>Scenario</Scenario>
<ScenarioOutline>Schema dello scenario</ScenarioOutline>
<Examples>Esempi</Examples>
<Given>Dato</Given>
<When>Quando</When>
<Then>Allora</Then>
<And>E</And>
<But>Ma</But>
</Language>
<Language code="ja" cultureInfo="ja" defaultSpecificCulture="ja-JP" englishName="Japanese">
<Feature>フィーãƒãƒ£</Feature>
<Feature>機能</Feature>
<Background>背景</Background>
<Scenario>シナリオ</Scenario>
<ScenarioOutline>シナリオアウトライン</ScenarioOutline>
<ScenarioOutline>シナリオテンプレート</ScenarioOutline>
<ScenarioOutline>テンプレ</ScenarioOutline>
<ScenarioOutline>シナリオテンプレ</ScenarioOutline>
<Examples>例</Examples>
<Examples>サンプル</Examples>
<Given>剿</Given>
<When>ã‚‚ã—</When>
<Then>ãªã‚‰ã°</Then>
<And>ã‹ã¤</And>
<But>ã—ã‹ã—</But>
<But>但ã—</But>
<But>ãŸã ã—</But>
</Language>
<Language code="ko" cultureInfo="ko" defaultSpecificCulture="ko-KR" englishName="Korean">
<Feature>기능</Feature>
<Background>ë°°ê²½</Background>
<Scenario>시나리오</Scenario>
<ScenarioOutline>시나리오 개요</ScenarioOutline>
<Examples>예</Examples>
<Given>ì¡°ê±´</Given>
<Given>먼저</Given>
<When>ë§Œì¼</When>
<When>만약</When>
<Then>그러면</Then>
<And>그리고</And>
<But>하지만</But>
<But>단</But>
</Language>
<Language code="lt" cultureInfo="lt" defaultSpecificCulture="lt-LT" englishName="Lithuanian">
<Feature>SavybÄ—</Feature>
<Background>Kontekstas</Background>
<Scenario>Scenarijus</Scenario>
<ScenarioOutline>Scenarijaus šablonas</ScenarioOutline>
<Examples>Pavyzdžiai</Examples>
<Examples>Scenarijai</Examples>
<Examples>Variantai</Examples>
<Given>Duota</Given>
<When>Kai</When>
<Then>Tada</Then>
<And>Ir</And>
<But>Bet</But>
</Language>
<Language code="lb-LU" cultureInfo="lb-LU" compatibleGherkinCode="lu" englishName="Luxembourgish (Luxembourg)">
<Feature>Funktionalitéit</Feature>
<Background>Hannergrond</Background>
<Scenario>Szenario</Scenario>
<ScenarioOutline>Plang vum Szenario</ScenarioOutline>
<Examples>Beispiller</Examples>
<Given>ugeholl</Given>
<When>wann</When>
<Then>dann</Then>
<And>an</And>
<And>a</And>
<But>awer</But>
<But>mä</But>
</Language>
<Language code="lv" cultureInfo="lv" defaultSpecificCulture="lv-LV" englishName="Latvian">
<Feature>FunkcionalitÄte</Feature>
<Feature>FÄ«Äa</Feature>
<Background>Konteksts</Background>
<Background>SituÄcija</Background>
<Scenario>ScenÄrijs</Scenario>
<ScenarioOutline>ScenÄrijs pÄ“c parauga</ScenarioOutline>
<Examples>Piemēri</Examples>
<Examples>Paraugs</Examples>
<Given>Kad</Given>
<When>Ja</When>
<Then>Tad</Then>
<And>Un</And>
<But>Bet</But>
</Language>
<Language code="nl" cultureInfo="nl" defaultSpecificCulture="nl-NL" englishName="Dutch">
<Feature>Functionaliteit</Feature>
<Background>Achtergrond</Background>
<Scenario>Scenario</Scenario>
<ScenarioOutline>Abstract Scenario</ScenarioOutline>
<Examples>Voorbeelden</Examples>
<Given>Gegeven</Given>
<Given>Stel</Given>
<When>Als</When>
<Then>Dan</Then>
<And>En</And>
<But>Maar</But>
</Language>
<Language code="no" cultureInfo="no" defaultSpecificCulture="nb-NO" englishName="Norwegian">
<Feature>Egenskap</Feature>
<Background>Bakgrunn</Background>
<Scenario>Scenario</Scenario>
<ScenarioOutline>Scenariomal</ScenarioOutline>
<ScenarioOutline>Abstrakt Scenario</ScenarioOutline>
<Examples>Eksempler</Examples>
<Given>Gitt</Given>
<When>NÃ¥r</When>
<Then>SÃ¥</Then>
<And>Og</And>
<But>Men</But>
</Language>
<Language code="pl" cultureInfo="pl" defaultSpecificCulture="pl-PL" englishName="Polish">
<Feature>Właściwość</Feature>
<Background>Założenia</Background>
<Scenario>Scenariusz</Scenario>
<ScenarioOutline>Szablon scenariusza</ScenarioOutline>
<Examples>Przykłady</Examples>
<Given>Zakładając</Given>
<Given>MajÄ…c</Given>
<When>Jeżeli</When>
<When>Jeśli</When>
<Then>Wtedy</Then>
<And>Oraz</And>
<And>I</And>
<But>Ale</But>
</Language>
<Language code="pt" cultureInfo="pt" defaultSpecificCulture="pt-PT" englishName="Portuguese">
<Feature>Funcionalidade</Feature>
<Background>Contexto</Background>
<Scenario>Cenário</Scenario>
<Scenario>Cenario</Scenario>
<ScenarioOutline>Esquema do Cenário</ScenarioOutline>
<ScenarioOutline>Esquema do Cenario</ScenarioOutline>
<Examples>Exemplos</Examples>
<Given>Dado</Given>
<When>Quando</When>
<Then>Então</Then>
<Then>Entao</Then>
<And>E</And>
<But>Mas</But>
</Language>
<Language code="ro" cultureInfo="ro" defaultSpecificCulture="ro-RO" englishName="Romanian">
<Feature>Functionalitate</Feature>
<Feature>Funcționalitate</Feature>
<Feature>Funcţionalitate</Feature>
<Background>Context</Background>
<Scenario>Scenariu</Scenario>
<ScenarioOutline>Structura scenariu</ScenarioOutline>
<ScenarioOutline>Structură scenariu</ScenarioOutline>
<Examples>Exemple</Examples>
<Given>Date fiind</Given>
<Given>Dat fiind</Given>
<Given>Dati fiind</Given>
<Given>Dați fiind</Given>
<Given>Daţi fiind</Given>
<When>Cand</When>
<When>Când</When>
<Then>Atunci</Then>
<And>Si</And>
<And>Și</And>
<And>Åži</And>
<But>Dar</But>
</Language>
<Language code="ru" cultureInfo="ru" defaultSpecificCulture="ru-RU" englishName="Russian">
<Feature>ФункциÑ</Feature>
<Feature>Функционал</Feature>
<Feature>СвойÑтво</Feature>
<Background>ПредыÑториÑ</Background>
<Background>КонтекÑÑ‚</Background>
<Scenario>Сценарий</Scenario>
<ScenarioOutline>Структура ÑценариÑ</ScenarioOutline>
<Examples>Примеры</Examples>
<Given>ДопуÑтим</Given>
<Given>Дано</Given>
<Given>ПуÑть</Given>
<When>ЕÑли</When>
<When>Когда</When>
<Then>То</Then>
<Then>Тогда</Then>
<And>И</And>
<And>К тому же</And>
<But>Ðо</But>
<But>Ð</But>
</Language>
<Language code="sk" cultureInfo="sk" defaultSpecificCulture="sk-SK" englishName="Slovak">
<Feature>Požiadavka</Feature>
<Background>Pozadie</Background>
<Scenario>Scenár</Scenario>
<ScenarioOutline>NáÄrt Scenáru</ScenarioOutline>
<Examples>Príklady</Examples>
<Given>Pokiaľ</Given>
<When>KeÄ</When>
<Then>Tak</Then>
<And>A</And>
<But>Ale</But>
</Language>
<Language code="sr-CYRL" cultureInfo="sr" englishName="Serbian">
<Feature>ФункционалноÑÑ‚</Feature>
<Feature>МогућноÑÑ‚</Feature>
<Feature>ОÑобина</Feature>
<Background>КонтекÑÑ‚</Background>
<Background>ОÑнова</Background>
<Background>Позадина</Background>
<Scenario>Сценарио</Scenario>
<Scenario>Пример</Scenario>
<ScenarioOutline>Структура Ñценарија</ScenarioOutline>
<ScenarioOutline>Скица</ScenarioOutline>
<ScenarioOutline>Концепт</ScenarioOutline>
<Examples>Примери</Examples>
<Examples>Сценарији</Examples>
<Given>Задато</Given>
<Given>Задате</Given>
<Given>Задати</Given>
<When>Када</When>
<When>Кад</When>
<Then>Онда</Then>
<And>И</And>
<But>Ðли</But>
</Language>
<Language code="sr-LATN" cultureInfo="sr" englishName="Serbian">
<Feature>Funkcionalnost</Feature>
<Feature>Mogućnost</Feature>
<Feature>Mogucnost</Feature>
<Feature>Osobina</Feature>
<Background>Kontekst</Background>
<Background>Osnova</Background>
<Background>Pozadina</Background>
<Scenario>Scenario</Scenario>
<Scenario>Primer</Scenario>
<ScenarioOutline>Struktura scenarija</ScenarioOutline>
<ScenarioOutline>Skica</ScenarioOutline>
<ScenarioOutline>Koncept</ScenarioOutline>
<Examples>Primeri</Examples>
<Examples>Scenariji</Examples>
<Given>Zadato</Given>
<Given>Zadate</Given>
<Given>Zatati</Given>
<When>Kada</When>
<When>Kad</When>
<Then>Onda</Then>
<And>I</And>
<But>Ali</But>
</Language>
<Language code="sv" cultureInfo="sv" defaultSpecificCulture="sv-SE" englishName="Swedish">
<Feature>Egenskap</Feature>
<Background>Bakgrund</Background>
<Scenario>Scenario</Scenario>
<ScenarioOutline>Abstrakt Scenario</ScenarioOutline>
<ScenarioOutline>Scenariomall</ScenarioOutline>
<Examples>Exempel</Examples>
<Given>Givet</Given>
<When>När</When>
<Then>SÃ¥</Then>
<And>Och</And>
<But>Men</But>
</Language>
<Language code="tr" cultureInfo="tr" defaultSpecificCulture="tr-TR" englishName="Turkish">
<Feature>Özellik</Feature>
<Background>Geçmiş</Background>
<Scenario>Senaryo</Scenario>
<ScenarioOutline>Senaryo taslağı</ScenarioOutline>
<Examples>Örnekler</Examples>
<Given>Diyelim ki</Given>
<When>EÄŸer ki</When>
<Then>O zaman</Then>
<And>Ve</And>
<But>Fakat</But>
<But>Ama</But>
</Language>
<Language code="uk" cultureInfo="uk" defaultSpecificCulture="uk-UA" englishName="Ukrainian">
<Feature>Функціонал</Feature>
<Background>Передумова</Background>
<Scenario>Сценарій</Scenario>
<ScenarioOutline>Структура Ñценарію</ScenarioOutline>
<Examples>Приклади</Examples>
<Given>ПрипуÑтимо</Given>
<Given>ПрипуÑтимо, що</Given>
<Given>Ðехай</Given>
<Given>Дано</Given>
<When>Якщо</When>
<When>Коли</When>
<Then>То</Then>
<Then>Тоді</Then>
<And>І</And>
<And>Ртакож</And>
<And>Та</And>
<But>Ðле</But>
</Language>
<Language code="uz" cultureInfo="uz" defaultSpecificCulture="uz-Cyrl-UZ" englishName="Uzbek">
<Feature>Функционал</Feature>
<Background>Тарих</Background>
<Scenario>Сценарий</Scenario>
<ScenarioOutline>Сценарий ÑтруктураÑи</ScenarioOutline>
<Examples>МиÑоллар</Examples>
<Given>Ðгар</Given>
<When>Ðгар</When>
<Then>Унда</Then>
<And>Ва</And>
<But>Лекин</But>
<But>Бирок</But>
<But>Ðммо</But>
</Language>
<Language code="vi" cultureInfo="vi" defaultSpecificCulture="vi-VN" englishName="Vietnamese">
<Feature>Tính năng</Feature>
<Background>Bối cảnh</Background>
<Scenario>Tình huống</Scenario>
<Scenario>Kịch bản</Scenario>
<ScenarioOutline>Khung tình huống</ScenarioOutline>
<ScenarioOutline>Khung kịch bản</ScenarioOutline>
<Examples>Dữ liệu</Examples>
<Given>Biết</Given>
<Given>Cho</Given>
<When>Khi</When>
<Then>Thì</Then>
<And>Và</And>
<But>Nhưng</But>
</Language>
<Language code="zh-CN" cultureInfo="zh-CN" englishName="Chinese (People's Republic of China)">
<Feature>功能</Feature>
<Background>背景</Background>
<Scenario>场景</Scenario>
<ScenarioOutline>场景大纲</ScenarioOutline>
<Examples>例å­</Examples>
<Given>å‡å¦‚</Given>
<When>当</When>
<Then>那么</Then>
<And>而且</And>
<But>但是</But>
</Language>
<Language code="zh-TW" cultureInfo="zh-TW" englishName="Chinese (Taiwan)">
<Feature>功能</Feature>
<Background>背景</Background>
<Scenario>場景</Scenario>
<Scenario>劇本</Scenario>
<ScenarioOutline>場景大綱</ScenarioOutline>
<ScenarioOutline>劇本大綱</ScenarioOutline>
<Examples>例å­</Examples>
<Given>å‡è¨­</Given>
<When>ç•¶</When>
<Then>那麼</Then>
<And>而且</And>
<And>並且</And>
<But>但是</But>
</Language>
</SpecFlowLanguages>BSJB v2.0.50727lt#~à ##Strings€C`#USàG#GUIDðGd
#BlobW¢ ú%3"HŠŒ"y$ .
ÈÁÏÁ
íâ
։
âÁ`NÊÁàÁ3þãÁ:NEÁÉ¥
D â
0 ⦠~ À ãã Î  ~
{ â ˆ 
ãH
~ V
~ »
æ
~ ó
~ =Á
fÄš
éâ9ÁcNzNNÕãNüNN2NKNfNNš®ÁÕÄ
÷ÇM-m--ªÁÎNåN÷-N<ÁTÁN©ÁÁÁ̈ âÁ
Á;)LNu)¥N×Á_±¥!Á[D°õš?¥ƒÁ©Á
Ââ

'
4â@ÁTˆ ma
â
ž
®â
Ìâ
íâ
>â
d⼈ Ȉ àˆ
â
â
'â
7f
Hf
Yf
ofÂãe )N
?fÚÁ/*~ N~ £~ e¦Á½eé~ ÿ~ 8~ c°ãÐ~ Ö~ Û~ àaî  Z ý +!~ /!~ Å!ˆ Ò!ˆ ç!ˆ ô!ˆ
"*:Z:ev 
 £v °v¼v
%Íð.!@$6r
<v?š@0Fºð$IØíN-íO<v!PIv!Rdl!S¬l"T·l$UÀl)VÊl+WÖl-Xål1Yúv6Z *7`[ð0Atz*0CyvE~­vEƒE( Fi H/ÔSMwgz}zÃwä©w­6SV/{/ÞÇ&Ç!m =~ A w!© w!» w$
w>
wZ
w»
w!m rV€ù
wV€ w w$ w8 ÔK Ø[ w` w˜w[ wwý /¬Ê  [ w) w[ w/ zwd > V€ù
w w$ wH /c #!s w!Ô ^!ä b!í jü r
v!
!2
# ï¼  ^!î [w»
wìw/Ô ^; z[Ö
| Ð 
!1 !<!G+!\!i%¦!{+°! 6," =d"±E
t"±K š"{+
¢"{W
´"ñ]Ö" eÞ"iç"%nï".rø"7n#Br #{+#ªe#¾i"#Ò*#ãŠ3#ôe;#iD#9L#CU#M]#`Wf#s n#¤w#£ #³¤ˆ#{+#ÄÔ#$ÐP$OÜh%jê!˜%yð"¼%y#X&{+%:$³À%G$À&Ä
Ù'`&Ä î'h&ý'à&
+)'Ä( !)l'Ä7 (*ÄP .+n'{++v'ÄÙ+~'Äî+Š'{E+™'œ K,¬'ÄP .,¬(Ä7 (,0*{P-F*ÆÈ V/k*ÆÈ [0{*Ì e3ƒ*Ù i3Œ*æ e4”*õ i4*
e5¥*
i5®*{c6ä*
e9ì*©
i9õ*{j:
+ÄÙ>+{v>$+Ä7 (?Ð+è
|@,ÄP .C,{+C£,{+CÈ,® àC-® ëD -ï ûFº-{+HÂ-{+HÊ-{+HÒ-{+HÚ-{+Hâ-{+Hõ-{+H.{+H,.{2J;.{9L`.{BO¸. KRâ.Æ« eTê.ÙSTò.¿ XTü.{XUt/( ŠVÄ2f
V€3
Wt4š
£Yì4ª
®[x5Á
2010-11-14 14:32:41 -08:00
´\h6Á
2011-11-29 10:06:13 -08:00
½_Ô6ý+`ˆ7Ï
Ã`h:à
Òd;à
Ùeh;à