uppercutbuild 0.9
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/NDepend.xml +251 -0
- data/lib/build.bat +32 -0
- data/lib/build/Castle.Core.dll +0 -0
- data/lib/build/Castle.DynamicProxy2.dll +0 -0
- data/lib/build/Castle.MicroKernel.dll +0 -0
- data/lib/build/Castle.Windsor.dll +0 -0
- data/lib/build/UppercuT.xml +5 -0
- data/lib/build/analyze.step +78 -0
- data/lib/build/analyzers/gallio.test.step +145 -0
- data/lib/build/analyzers/mbunit2.test.step +146 -0
- data/lib/build/analyzers/moma.step +143 -0
- data/lib/build/analyzers/ncover.step +186 -0
- data/lib/build/analyzers/ndepend.step +95 -0
- data/lib/build/analyzers/nitriq.step +116 -0
- data/lib/build/analyzers/nunit.test.step +172 -0
- data/lib/build/analyzers/test.step +99 -0
- data/lib/build/compile.step +178 -0
- data/lib/build/customize.bat +41 -0
- data/lib/build/customize.build +76 -0
- data/lib/build/customizers/item.template +50 -0
- data/lib/build/default.build +164 -0
- data/lib/build/deploymentBuilder.step +103 -0
- data/lib/build/environmentBuilder.step +119 -0
- data/lib/build/generateBuildInfo.step +106 -0
- data/lib/build/ilmerge.build +174 -0
- data/lib/build/open.build +103 -0
- data/lib/build/package.step +234 -0
- data/lib/build/policyChecks.step +81 -0
- data/lib/build/updateAssemblies.build +107 -0
- data/lib/build/uppercut.dll +0 -0
- data/lib/build/uppercut.tasks.dll +0 -0
- data/lib/build/versionBuilder.step +148 -0
- data/lib/build/versioners/git.step +106 -0
- data/lib/build/versioners/hg.step +106 -0
- data/lib/build/versioners/svn.step +112 -0
- data/lib/build/versioners/tfs.step +104 -0
- data/lib/build/zip.build +162 -0
- data/lib/deployment/scripts/database.deploy +37 -0
- data/lib/deployment/templates/AppDeployment.bat +9 -0
- data/lib/deployment/templates/DBDeployment.RESTORE.bat +9 -0
- data/lib/deployment/templates/DBDeployment.bat +9 -0
- data/lib/lib/MbUnit2/MbUnit.AddIn.dll +0 -0
- data/lib/lib/MbUnit2/MbUnit.Cons.exe +0 -0
- data/lib/lib/MbUnit2/MbUnit.Cons.exe.config +12 -0
- data/lib/lib/MbUnit2/MbUnit.Framework.2.0.dll +0 -0
- data/lib/lib/MbUnit2/MbUnit.Framework.XML +6929 -0
- data/lib/lib/MbUnit2/MbUnit.Framework.dll +0 -0
- data/lib/lib/MbUnit2/MbUnit.GUI.exe +0 -0
- data/lib/lib/MbUnit2/MbUnit.GUI.exe.config +14 -0
- data/lib/lib/MbUnit2/MbUnit.MSBuild.Tasks.dll +0 -0
- data/lib/lib/MbUnit2/NAnt.Core.dll +0 -0
- data/lib/lib/MbUnit2/NGraphviz.Helpers.dll +0 -0
- data/lib/lib/MbUnit2/NGraphviz.Layout.dll +0 -0
- data/lib/lib/MbUnit2/NGraphviz.dll +0 -0
- data/lib/lib/MbUnit2/QuickGraph.Algorithms.Graphviz.dll +0 -0
- data/lib/lib/MbUnit2/QuickGraph.Algorithms.dll +0 -0
- data/lib/lib/MbUnit2/QuickGraph.dll +0 -0
- data/lib/lib/MbUnit2/Refly.dll +0 -0
- data/lib/lib/MbUnit2/TestDriven.Framework.dll +0 -0
- data/lib/lib/MbUnit2/TestFu.XML +1932 -0
- data/lib/lib/MbUnit2/TestFu.dll +0 -0
- data/lib/lib/MbUnit2/XsdTidy.exe +0 -0
- data/lib/lib/MoMA/Definitions/2.4.0.1-defs.zip +0 -0
- data/lib/lib/MoMA/ICSharpCode.SharpZipLib.dll +0 -0
- data/lib/lib/MoMA/MoMA.Analyzer.dll +0 -0
- data/lib/lib/MoMA/MoMA.exe +0 -0
- data/lib/lib/MoMA/Mono.Cecil.dll +0 -0
- data/lib/lib/MoMA/Reports/Media/fail.png +0 -0
- data/lib/lib/MoMA/Reports/Media/minus.png +0 -0
- data/lib/lib/MoMA/Reports/Media/moma.css +117 -0
- data/lib/lib/MoMA/Reports/Media/moma.js +17 -0
- data/lib/lib/MoMA/Reports/Media/pass.png +0 -0
- data/lib/lib/MoMA/Reports/Media/plus.png +0 -0
- data/lib/lib/MoMA/Resources/button_ok.png +0 -0
- data/lib/lib/MoMA/Resources/dialog-warning.png +0 -0
- data/lib/lib/MoMA/Resources/dialogback.png +0 -0
- data/lib/lib/MoMA/Resources/list-add.png +0 -0
- data/lib/lib/MoMA/Resources/list-directory.png +0 -0
- data/lib/lib/MoMA/Resources/list-remove.png +0 -0
- data/lib/lib/MoMA/Resources/monoback.png +0 -0
- data/lib/lib/MoMA/Resources/spinner.gif +0 -0
- data/lib/lib/NAnt/CollectionGen.dll +0 -0
- data/lib/lib/NAnt/Interop.MsmMergeTypeLib.dll +0 -0
- data/lib/lib/NAnt/Interop.StarTeam.dll +0 -0
- data/lib/lib/NAnt/Interop.WindowsInstaller.dll +0 -0
- data/lib/lib/NAnt/MSITaskErrors.mst +0 -0
- data/lib/lib/NAnt/MSITaskTemplate.msi +0 -0
- data/lib/lib/NAnt/MSMTaskErrors.mst +0 -0
- data/lib/lib/NAnt/MSMTaskTemplate.msm +0 -0
- data/lib/lib/NAnt/MbUnit.Framework.dll +0 -0
- data/lib/lib/NAnt/MbUnit.Tasks.dll +0 -0
- data/lib/lib/NAnt/NAnt.CompressionTasks.dll +0 -0
- data/lib/lib/NAnt/NAnt.Contrib.Tasks.dll +0 -0
- data/lib/lib/NAnt/NAnt.Core.dll +0 -0
- data/lib/lib/NAnt/NAnt.DotNetTasks.dll +0 -0
- data/lib/lib/NAnt/NAnt.MSNetTasks.dll +0 -0
- data/lib/lib/NAnt/NAnt.NUnit.dll +0 -0
- data/lib/lib/NAnt/NAnt.NUnit1Tasks.dll +0 -0
- data/lib/lib/NAnt/NAnt.NUnit2Tasks.dll +0 -0
- data/lib/lib/NAnt/NAnt.SourceControlTasks.dll +0 -0
- data/lib/lib/NAnt/NAnt.VSNetTasks.dll +0 -0
- data/lib/lib/NAnt/NAnt.VisualCppTasks.dll +0 -0
- data/lib/lib/NAnt/NAnt.Win32Tasks.dll +0 -0
- data/lib/lib/NAnt/NAnt.exe +0 -0
- data/lib/lib/NAnt/NAnt.exe.config +2126 -0
- data/lib/lib/NAnt/NCoverExplorer.NAntTasks.dll +0 -0
- data/lib/lib/NAnt/NDepend.Build.NAntTasks.dll +0 -0
- data/lib/lib/NAnt/NDoc.Documenter.NAnt.dll +0 -0
- data/lib/lib/NAnt/QuickGraph.Algorithms.dll +0 -0
- data/lib/lib/NAnt/QuickGraph.dll +0 -0
- data/lib/lib/NAnt/SLiNgshoT.Core.dll +0 -0
- data/lib/lib/NAnt/SLiNgshoT.exe +0 -0
- data/lib/lib/NAnt/SourceSafe.Interop.dll +0 -0
- data/lib/lib/NAnt/ThoughtWorks.CruiseControl.MSBuild.dll +0 -0
- data/lib/lib/NAnt/extensions/common/2.0/NAnt.MSBuild.dll +0 -0
- data/lib/lib/NAnt/extensions/common/2.0/NAnt.MSBuild.xml +36 -0
- data/lib/lib/NAnt/lib/common/1.1/nunit-console-runner.dll +0 -0
- data/lib/lib/NAnt/lib/common/1.1/nunit-console.exe +0 -0
- data/lib/lib/NAnt/lib/common/1.1/nunit.core.dll +0 -0
- data/lib/lib/NAnt/lib/common/1.1/nunit.framework.dll +0 -0
- data/lib/lib/NAnt/lib/common/1.1/nunit.util.dll +0 -0
- data/lib/lib/NAnt/lib/common/2.0/nunit-console-runner.dll +0 -0
- data/lib/lib/NAnt/lib/common/2.0/nunit-console.exe +0 -0
- data/lib/lib/NAnt/lib/common/2.0/nunit.core.dll +0 -0
- data/lib/lib/NAnt/lib/common/2.0/nunit.framework.dll +0 -0
- data/lib/lib/NAnt/lib/common/2.0/nunit.util.dll +0 -0
- data/lib/lib/NAnt/lib/common/neutral/ICSharpCode.SharpCvsLib.Console.dll +0 -0
- data/lib/lib/NAnt/lib/common/neutral/ICSharpCode.SharpCvsLib.dll +0 -0
- data/lib/lib/NAnt/lib/common/neutral/ICSharpCode.SharpZipLib.dll +0 -0
- data/lib/lib/NAnt/lib/common/neutral/NDoc.Core.dll +0 -0
- data/lib/lib/NAnt/lib/common/neutral/NDoc.Documenter.Msdn.dll +0 -0
- data/lib/lib/NAnt/lib/common/neutral/NDoc.ExtendedUI.dll +0 -0
- data/lib/lib/NAnt/lib/common/neutral/NUnitCore.dll +0 -0
- data/lib/lib/NAnt/lib/mono/1.0/NDoc.Core.dll +0 -0
- data/lib/lib/NAnt/lib/mono/1.0/NDoc.Documenter.Msdn.dll +0 -0
- data/lib/lib/NAnt/lib/mono/1.0/NDoc.ExtendedUI.dll +0 -0
- data/lib/lib/NAnt/lib/mono/1.0/nunit.core.dll +0 -0
- data/lib/lib/NAnt/lib/mono/1.0/nunit.framework.dll +0 -0
- data/lib/lib/NAnt/lib/mono/1.0/nunit.util.dll +0 -0
- data/lib/lib/NAnt/lib/mono/2.0/NDoc.Core.dll +0 -0
- data/lib/lib/NAnt/lib/mono/2.0/NDoc.Documenter.Msdn.dll +0 -0
- data/lib/lib/NAnt/lib/mono/2.0/NDoc.ExtendedUI.dll +0 -0
- data/lib/lib/NAnt/lib/mono/2.0/nunit.core.dll +0 -0
- data/lib/lib/NAnt/lib/mono/2.0/nunit.framework.dll +0 -0
- data/lib/lib/NAnt/lib/mono/2.0/nunit.util.dll +0 -0
- data/lib/lib/NAnt/lib/net/1.0/NDoc.Core.dll +0 -0
- data/lib/lib/NAnt/lib/net/1.0/NDoc.Documenter.Msdn.dll +0 -0
- data/lib/lib/NAnt/lib/net/1.0/NDoc.ExtendedUI.dll +0 -0
- data/lib/lib/NAnt/lib/net/1.0/nunit-console-runner.dll +0 -0
- data/lib/lib/NAnt/lib/net/1.0/nunit-console.exe +0 -0
- data/lib/lib/NAnt/lib/net/1.0/nunit.core.dll +0 -0
- data/lib/lib/NAnt/lib/net/1.0/nunit.framework.dll +0 -0
- data/lib/lib/NAnt/lib/net/1.0/nunit.util.dll +0 -0
- data/lib/lib/NAnt/lib/net/1.1/NDoc.Core.dll +0 -0
- data/lib/lib/NAnt/lib/net/1.1/NDoc.Documenter.Msdn.dll +0 -0
- data/lib/lib/NAnt/lib/net/1.1/NDoc.ExtendedUI.dll +0 -0
- data/lib/lib/NAnt/lib/net/1.1/nunit.core.dll +0 -0
- data/lib/lib/NAnt/lib/net/1.1/nunit.framework.dll +0 -0
- data/lib/lib/NAnt/lib/net/1.1/nunit.util.dll +0 -0
- data/lib/lib/NAnt/lib/net/2.0/NDoc.Core.dll +0 -0
- data/lib/lib/NAnt/lib/net/2.0/NDoc.Documenter.Msdn.dll +0 -0
- data/lib/lib/NAnt/lib/net/2.0/NDoc.ExtendedUI.dll +0 -0
- data/lib/lib/NAnt/lib/net/2.0/nunit.core.dll +0 -0
- data/lib/lib/NAnt/lib/net/2.0/nunit.framework.dll +0 -0
- data/lib/lib/NAnt/lib/net/2.0/nunit.util.dll +0 -0
- data/lib/lib/NAnt/log4net.dll +0 -0
- data/lib/lib/NAnt/scvs.exe +0 -0
- data/lib/lib/NCover/ActiproEULA.html +287 -0
- data/lib/lib/NCover/ActiproSoftware.Shared.Net11.dll +0 -0
- data/lib/lib/NCover/ActiproSoftware.SyntaxEditor.Net11.dll +0 -0
- data/lib/lib/NCover/ActiproSoftware.WinUICore.Net11.dll +0 -0
- data/lib/lib/NCover/CommandBars.dll +0 -0
- data/lib/lib/NCover/ConsoleConfig.xsd +123 -0
- data/lib/lib/NCover/ConsoleExample.config +94 -0
- data/lib/lib/NCover/CoverLib.dll +0 -0
- data/lib/lib/NCover/Coverage.xsl +339 -0
- data/lib/lib/NCover/CoverageReport.xsl +468 -0
- data/lib/lib/NCover/ICSharpCode.TextEditor.dll +0 -0
- data/lib/lib/NCover/LicencePersonal.rtf +334 -0
- data/lib/lib/NCover/MSVCP80.dll +0 -0
- data/lib/lib/NCover/MSVCR80.dll +0 -0
- data/lib/lib/NCover/Microsoft.VC80.CRT.manifest +8 -0
- data/lib/lib/NCover/NCover.Console.exe +0 -0
- data/lib/lib/NCover/NCover.Console.exe.config +6 -0
- data/lib/lib/NCover/NCover.Framework.dll +0 -0
- data/lib/lib/NCover/NCoverExplorer.Console.exe +0 -0
- data/lib/lib/NCover/NCoverExplorer.Core.dll +0 -0
- data/lib/lib/NCover/NCoverExplorer.NCoverRunner.dll +0 -0
- data/lib/lib/NCover/NCoverExplorer.WinForms.dll +0 -0
- data/lib/lib/NCover/NCoverExplorer.exe +0 -0
- data/lib/lib/NCover/NCoverExplorer.exe.config +8 -0
- data/lib/lib/NCover/NCoverExplorerFAQ.html +303 -0
- data/lib/lib/NCover/NCoverExplorerReleaseNotes.html +874 -0
- data/lib/lib/NCover/NCoverFAQ.html +429 -0
- data/lib/lib/NCover/VC80CRT.MAN +15 -0
- data/lib/lib/NCover/license.txt +299 -0
- data/lib/lib/NUnit/NUnitTests.config +84 -0
- data/lib/lib/NUnit/NUnitTests.nunit +14 -0
- data/lib/lib/NUnit/agent.conf +4 -0
- data/lib/lib/NUnit/agent.log.conf +18 -0
- data/lib/lib/NUnit/framework/nunit.framework.dll +0 -0
- data/lib/lib/NUnit/framework/nunit.framework.xml +10113 -0
- data/lib/lib/NUnit/framework/nunit.mocks.dll +0 -0
- data/lib/lib/NUnit/framework/pnunit.framework.dll +0 -0
- data/lib/lib/NUnit/launcher.log.conf +18 -0
- data/lib/lib/NUnit/lib/Failure.png +0 -0
- data/lib/lib/NUnit/lib/Ignored.png +0 -0
- data/lib/lib/NUnit/lib/Inconclusive.png +0 -0
- data/lib/lib/NUnit/lib/Skipped.png +0 -0
- data/lib/lib/NUnit/lib/Success.png +0 -0
- data/lib/lib/NUnit/lib/fit.dll +0 -0
- data/lib/lib/NUnit/lib/log4net.dll +0 -0
- data/lib/lib/NUnit/lib/nunit-console-runner.dll +0 -0
- data/lib/lib/NUnit/lib/nunit-gui-runner.dll +0 -0
- data/lib/lib/NUnit/lib/nunit.core.dll +0 -0
- data/lib/lib/NUnit/lib/nunit.core.interfaces.dll +0 -0
- data/lib/lib/NUnit/lib/nunit.fixtures.dll +0 -0
- data/lib/lib/NUnit/lib/nunit.uiexception.dll +0 -0
- data/lib/lib/NUnit/lib/nunit.uikit.dll +0 -0
- data/lib/lib/NUnit/lib/nunit.util.dll +0 -0
- data/lib/lib/NUnit/nunit-agent-x86.exe +0 -0
- data/lib/lib/NUnit/nunit-agent-x86.exe.config +76 -0
- data/lib/lib/NUnit/nunit-agent.exe +0 -0
- data/lib/lib/NUnit/nunit-agent.exe.config +76 -0
- data/lib/lib/NUnit/nunit-console-x86.exe +0 -0
- data/lib/lib/NUnit/nunit-console-x86.exe.config +76 -0
- data/lib/lib/NUnit/nunit-console.exe +0 -0
- data/lib/lib/NUnit/nunit-console.exe.config +76 -0
- data/lib/lib/NUnit/nunit-x86.exe +0 -0
- data/lib/lib/NUnit/nunit-x86.exe.config +91 -0
- data/lib/lib/NUnit/nunit.exe +0 -0
- data/lib/lib/NUnit/nunit.exe.config +91 -0
- data/lib/lib/NUnit/nunit.framework.dll +0 -0
- data/lib/lib/NUnit/pnunit-agent.exe +0 -0
- data/lib/lib/NUnit/pnunit-agent.exe.config +77 -0
- data/lib/lib/NUnit/pnunit-launcher.exe +0 -0
- data/lib/lib/NUnit/pnunit-launcher.exe.config +77 -0
- data/lib/lib/NUnit/pnunit.framework.dll +0 -0
- data/lib/lib/NUnit/pnunit.tests.dll +0 -0
- data/lib/lib/NUnit/runpnunit.bat +2 -0
- data/lib/lib/NUnit/test.conf +24 -0
- data/lib/lib/NUnit/tests/loadtest-assembly.dll +0 -0
- data/lib/lib/NUnit/tests/mock-assembly.dll +0 -0
- data/lib/lib/NUnit/tests/nonamespace-assembly.dll +0 -0
- data/lib/lib/NUnit/tests/nunit-console.tests.dll +0 -0
- data/lib/lib/NUnit/tests/nunit-gui.tests.dll +0 -0
- data/lib/lib/NUnit/tests/nunit.core.tests.dll +0 -0
- data/lib/lib/NUnit/tests/nunit.fixtures.tests.dll +0 -0
- data/lib/lib/NUnit/tests/nunit.framework.dll +0 -0
- data/lib/lib/NUnit/tests/nunit.framework.tests.dll +0 -0
- data/lib/lib/NUnit/tests/nunit.mocks.tests.dll +0 -0
- data/lib/lib/NUnit/tests/nunit.uiexception.tests.dll +0 -0
- data/lib/lib/NUnit/tests/nunit.uikit.tests.dll +0 -0
- data/lib/lib/NUnit/tests/nunit.util.tests.dll +0 -0
- data/lib/lib/NUnit/tests/test-assembly.dll +0 -0
- data/lib/lib/NUnit/tests/test-utilities.dll +0 -0
- data/lib/lib/NUnit/tests/timing-tests.dll +0 -0
- data/lib/open.bat +10 -0
- data/lib/settings/LOCAL.settings +29 -0
- data/lib/settings/SettingsFileReadMe.txt +2 -0
- data/lib/settings/UppercuT.config +73 -0
- data/lib/test.bat +38 -0
- data/lib/zip.bat +23 -0
- metadata +328 -0
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,123 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
2
|
+
<!-- NCoverExplorer (c) 2007 Grant Drake. -->
|
3
|
+
<!-- Schema for configuration file to be passed to NCoverExplorer-Console.exe using /config: switch -->
|
4
|
+
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
|
5
|
+
<xs:element name="ConsoleSetting">
|
6
|
+
<xs:complexType>
|
7
|
+
<xs:sequence>
|
8
|
+
<!-- Title name to appear on the report (equivalent to /project:xx). Default is blank. -->
|
9
|
+
<xs:element name="ProjectName" type="xs:string" minOccurs="0" maxOccurs="1" />
|
10
|
+
<!-- Threshold for acceptance criteria for coverage reports detailing acceptable coverage levels. Default is 95% -->
|
11
|
+
<xs:element name="SatisfactoryCoverageThreshold" type="xs:decimal" minOccurs="0" maxOccurs="1" />
|
12
|
+
<!-- Threshold for acceptance criteria for coverage reports detailing acceptable coverage as #seqPts rather than %. Default is 0. -->
|
13
|
+
<xs:element name="SatisfactoryUnvisitedSequencePoints" type="xs:decimal" minOccurs="0" maxOccurs="1" />
|
14
|
+
<!-- Threshold for acceptance criteria for coverage reports detailing acceptable function coverage levels. Default is 80% -->
|
15
|
+
<xs:element name="SatisfactoryFunctionThreshold" type="xs:decimal" minOccurs="0" maxOccurs="1" />
|
16
|
+
<!-- Filtering to be applied to the results. Use integer (starting from 0=None) or named value. Default is "None". -->
|
17
|
+
<xs:element name="TreeFilterStyle" minOccurs="0" maxOccurs="1">
|
18
|
+
<xs:simpleType>
|
19
|
+
<xs:restriction base="xs:string">
|
20
|
+
<xs:enumeration value="None" />
|
21
|
+
<xs:enumeration value="HideUnvisited" />
|
22
|
+
<xs:enumeration value="HideFullyCovered" />
|
23
|
+
<xs:enumeration value="HideThresholdCovered" />
|
24
|
+
</xs:restriction>
|
25
|
+
</xs:simpleType>
|
26
|
+
</xs:element>
|
27
|
+
<!-- Sorting to be applied to the results. Use integer (starting from 0=Name) or named value. Default is "Name". -->
|
28
|
+
<xs:element name="TreeSortStyle" minOccurs="0" maxOccurs="1">
|
29
|
+
<xs:simpleType>
|
30
|
+
<xs:restriction base="xs:string">
|
31
|
+
<xs:enumeration value="Name" />
|
32
|
+
<xs:enumeration value="ClassLine" />
|
33
|
+
<xs:enumeration value="CoveragePercentageAscending" />
|
34
|
+
<xs:enumeration value="CoveragePercentageDescending" />
|
35
|
+
<xs:enumeration value="UnvisitedSequencePointsAscending" />
|
36
|
+
<xs:enumeration value="UnvisitedSequencePointsDescending" />
|
37
|
+
<xs:enumeration value="VisitCountAscending" />
|
38
|
+
<xs:enumeration value="VisitCountDescending" />
|
39
|
+
<xs:enumeration value="FunctionCoverageAscending" />
|
40
|
+
<xs:enumeration value="FunctionCoverageDescending" />
|
41
|
+
</xs:restriction>
|
42
|
+
</xs:simpleType>
|
43
|
+
</xs:element>
|
44
|
+
<!-- Coverage exclusions to exclude specified assemblies, namespaces, classes and/or methods. -->
|
45
|
+
<xs:element name="CoverageExclusions" minOccurs="0" maxOccurs="1">
|
46
|
+
<xs:complexType>
|
47
|
+
<xs:sequence>
|
48
|
+
<xs:element ref="CoverageExclusion" maxOccurs="unbounded" />
|
49
|
+
</xs:sequence>
|
50
|
+
</xs:complexType>
|
51
|
+
</xs:element>
|
52
|
+
<!-- Module specific coverage thresholds if wanting more granular coverage tolerances. -->
|
53
|
+
<xs:element name="ModuleThresholds" minOccurs="0" maxOccurs="1">
|
54
|
+
<xs:complexType>
|
55
|
+
<xs:sequence>
|
56
|
+
<xs:element ref="ModuleThreshold" maxOccurs="unbounded" />
|
57
|
+
</xs:sequence>
|
58
|
+
</xs:complexType>
|
59
|
+
</xs:element>
|
60
|
+
<!-- Names of the coverage files to merge/report on. Wildcards can be used. -->
|
61
|
+
<xs:element name="CoverageFileNames" minOccurs="1" maxOccurs="1">
|
62
|
+
<xs:complexType>
|
63
|
+
<xs:sequence>
|
64
|
+
<xs:element name="CoverageFileName" type="xs:string" minOccurs="0" maxOccurs="unbounded" />
|
65
|
+
</xs:sequence>
|
66
|
+
</xs:complexType>
|
67
|
+
</xs:element>
|
68
|
+
<!-- Report to be generated by running NCoverExplorer.Console. Default is "None". -->
|
69
|
+
<xs:element name="ReportType" minOccurs="0" maxOccurs="1">
|
70
|
+
<xs:simpleType>
|
71
|
+
<xs:restriction base="xs:string">
|
72
|
+
<xs:enumeration value="None" />
|
73
|
+
<xs:enumeration value="ModuleSummary" />
|
74
|
+
<xs:enumeration value="ModuleNamespaceSummary" />
|
75
|
+
<xs:enumeration value="ModuleClassSummary" />
|
76
|
+
<xs:enumeration value="ModuleClassFunctionSummary" />
|
77
|
+
</xs:restriction>
|
78
|
+
</xs:simpleType>
|
79
|
+
</xs:element>
|
80
|
+
<!-- File name for the output HTML report if wanting to generate one. -->
|
81
|
+
<xs:element name="HtmlReportFileName" type="xs:string" minOccurs="0" maxOccurs="1" />
|
82
|
+
<!-- File name for the output XML report if wanting to generate one. -->
|
83
|
+
<xs:element name="XmlReportFileName" type="xs:string" minOccurs="0" maxOccurs="1" />
|
84
|
+
<!-- File name for the output merged coverage.xml file if any resulting from merging the inputs. -->
|
85
|
+
<xs:element name="MergeFileName" type="xs:string" minOccurs="0" maxOccurs="1" />
|
86
|
+
<!-- Whether to show the excluded elements in the footer of the output report if being generated. Default is false. -->
|
87
|
+
<xs:element name="ShowExcludedFooter" type="xs:boolean" minOccurs="0" maxOccurs="1" />
|
88
|
+
<!-- Whether to return a failure exit code if any module is below the minimum coverage threshold. Default is false. -->
|
89
|
+
<xs:element name="FailIfBelowMinimum" type="xs:boolean" minOccurs="0" maxOccurs="1" />
|
90
|
+
<!-- Whether to return a failure exit code if total coverage is below the minimum coverage threshold. Default is false. -->
|
91
|
+
<xs:element name="FailIfBelowCombinedMinimum" type="xs:boolean" minOccurs="0" maxOccurs="1" />
|
92
|
+
<!-- For use with the FailIfXXX options - the minimum coverage threshold if not specifying at the module level. -->
|
93
|
+
<xs:element name="MinimumCoverage" type="xs:decimal" minOccurs="0" maxOccurs="1" />
|
94
|
+
<!-- Whether to suppress virtually all console output when running. Default is false. -->
|
95
|
+
<xs:element name="NoLog" type="xs:boolean" minOccurs="0" maxOccurs="1" />
|
96
|
+
</xs:sequence>
|
97
|
+
</xs:complexType>
|
98
|
+
</xs:element>
|
99
|
+
<xs:element name="CoverageExclusion">
|
100
|
+
<xs:complexType>
|
101
|
+
<xs:sequence>
|
102
|
+
<xs:element name="ExclusionType" minOccurs="1" maxOccurs="1">
|
103
|
+
<xs:simpleType>
|
104
|
+
<xs:restriction base="xs:string">
|
105
|
+
<xs:enumeration value="Assembly" />
|
106
|
+
<xs:enumeration value="Namespace" />
|
107
|
+
<xs:enumeration value="Class" />
|
108
|
+
<xs:enumeration value="Method" />
|
109
|
+
</xs:restriction>
|
110
|
+
</xs:simpleType>
|
111
|
+
</xs:element>
|
112
|
+
<xs:element name="Pattern" type="xs:string" minOccurs="1" maxOccurs="1" />
|
113
|
+
<xs:element name="IsRegex" type="xs:boolean" minOccurs="0" maxOccurs="1" />
|
114
|
+
</xs:sequence>
|
115
|
+
</xs:complexType>
|
116
|
+
</xs:element>
|
117
|
+
<xs:element name="ModuleThreshold">
|
118
|
+
<xs:complexType>
|
119
|
+
<xs:attribute name="ModuleName" use="required" type="xs:string" />
|
120
|
+
<xs:attribute name="SatisfactoryCoverage" use="required" type="xs:decimal" />
|
121
|
+
</xs:complexType>
|
122
|
+
</xs:element>
|
123
|
+
</xs:schema>
|
@@ -0,0 +1,94 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<!-- Example configuration file to be passed to NCoverExplorer-Console.exe using /config: switch -->
|
3
|
+
<!-- If not supplied, then the same defaults will be used as the NCoverExplorer GUI. -->
|
4
|
+
<ConsoleSetting xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
5
|
+
<!-- Name attribute is title to appear on the report (equivalent to /project:xx). Default is blank. -->
|
6
|
+
<ProjectName>Example.Project</ProjectName>
|
7
|
+
|
8
|
+
<!-- Names of the coverage files to merge/report on. Wildcards can be used. -->
|
9
|
+
<CoverageFileNames>
|
10
|
+
<CoverageFileName>*.Coverage.xml</CoverageFileName>
|
11
|
+
</CoverageFileNames>
|
12
|
+
|
13
|
+
<!-- Report to be generated by running NCoverExplorer.Console. Default is "None". Other possible values are:
|
14
|
+
"ModuleSummary", "ModuleNamespaceSummary",
|
15
|
+
"ModuleClassSummary", "ModuleClassFunctionSummary"
|
16
|
+
-->
|
17
|
+
<ReportType>ModuleClassSummary</ReportType>
|
18
|
+
<!-- Filename for the output html report if wanting to generate one. -->
|
19
|
+
<HtmlReportFileName>C:\MyCoverageReport.html</HtmlReportFileName>
|
20
|
+
<!-- Filename for the output xml report (for use by cc.net) if wanting to generate one. -->
|
21
|
+
<XmlReportFileName>C:\MyCoverageReport.xml</XmlReportFileName>
|
22
|
+
|
23
|
+
<!-- File name for the output merged coverage.xml file if any resulting from merging the inputs. -->
|
24
|
+
<!--<MergeFileName>C:\MyCoverageMerged.xml</MergeFileName>-->
|
25
|
+
|
26
|
+
<!-- Whether to show the excluded elements in the footer of the output report if being generated. Default is false. -->
|
27
|
+
<!--<ShowExcludedFooter>True</ShowExcludedFooter>-->
|
28
|
+
|
29
|
+
<!-- Whether to suppress virtually all console output when running. Default is false. -->
|
30
|
+
<!--<NoLog>True</NoLog>-->
|
31
|
+
|
32
|
+
<!-- Threshold for acceptance criteria for coverage reports detailing acceptable coverage levels. Default is 95% -->
|
33
|
+
<!--<SatisfactoryCoverageThreshold>95</SatisfactoryCoverageThreshold>-->
|
34
|
+
|
35
|
+
<!-- Threshold for acceptance criteria for coverage reports detailing acceptable coverage as #seqPts rather than %. Default is 0. -->
|
36
|
+
<!--<SatisfactoryUnvisitedSequencePoints>2</SatisfactoryUnvisitedSequencePoints> -->
|
37
|
+
|
38
|
+
<!-- Threshold for acceptance criteria for coverage reports detailing acceptable function coverage levels. Default is 80% -->
|
39
|
+
<!--<SatisfactoryFunctionThreshold>80</SatisfactoryFunctionThreshold> -->
|
40
|
+
|
41
|
+
<!-- Threshold for acceptance criteria for coverage reports detailing acceptable function coverage levels. Default is 80% -->
|
42
|
+
<!--<SatisfactoryFunctionThreshold>80</SatisfactoryFunctionThreshold> -->
|
43
|
+
|
44
|
+
<!-- Filtering to be applied to the results. Use integer or named value. Default is "None". Possible values:
|
45
|
+
"None" (0),
|
46
|
+
"HideUnvisited" (1),
|
47
|
+
"HideFullyCovered" (2),
|
48
|
+
"HideThresholdCovered" (3)
|
49
|
+
-->
|
50
|
+
<TreeFilterStyle>None</TreeFilterStyle>
|
51
|
+
|
52
|
+
<!-- Sorting to be applied to the results. Use integer or named value. Default is "Name". Possible values:
|
53
|
+
"Name" (0),
|
54
|
+
"ClassLine" (1),
|
55
|
+
"CoveragePercentageAscending" (2), "CoveragePercentageDescending" (3),
|
56
|
+
"UnvisitedSequencePointsAscending" (4), "UnvisitedSequencePointsDescending" (5),
|
57
|
+
"VisitCountAscending" (6), "VisitCountDescending" (7)
|
58
|
+
"FunctionCoverageAscending" (8), "FunctionCoverageDescending" (9),
|
59
|
+
-->
|
60
|
+
<TreeSortStyle>Name</TreeSortStyle>
|
61
|
+
|
62
|
+
<!-- Coverage exclusions to exclude specified assemblies, namespaces and/or classes. -->
|
63
|
+
<CoverageExclusions>
|
64
|
+
<CoverageExclusion>
|
65
|
+
<ExclusionType>Assembly</ExclusionType>
|
66
|
+
<!-- Valid values are [Assembly], [Namespace] and [Class]. -->
|
67
|
+
<Pattern>*.Tests</Pattern>
|
68
|
+
<IsRegex>false</IsRegex>
|
69
|
+
<!-- Only required with a value of "true" if you do have a regular expression based pattern -->
|
70
|
+
</CoverageExclusion>
|
71
|
+
<CoverageExclusion>
|
72
|
+
<ExclusionType>Namespace</ExclusionType>
|
73
|
+
<Pattern>*.My*</Pattern>
|
74
|
+
</CoverageExclusion>
|
75
|
+
</CoverageExclusions>
|
76
|
+
|
77
|
+
<!-- Module specific coverage thresholds if any, -->
|
78
|
+
<!--<ModuleThresholds>
|
79
|
+
<ModuleThreshold ModuleName="NCoverExplorer.Core.dll" SatisfactoryCoverage="30" />
|
80
|
+
</ModuleThresholds>-->
|
81
|
+
|
82
|
+
<!-- Whether to return a failure exit code if any module is below the minimum coverage threshold. Default is false. -->
|
83
|
+
<!--<FailIfBelowMinimum>True</FailIfBelowMinimum> -->
|
84
|
+
|
85
|
+
<!-- Whether to return a failure exit code if total coverage is below the minimum coverage threshold. Default is false. -->
|
86
|
+
<!--<FailIfBelowCombinedMinimum>True</FailIfBelowCombinedMinimum> -->
|
87
|
+
|
88
|
+
<!-- For use with the FailIfXXX options - the minimum coverage threshold if not specifying at the module level. -->
|
89
|
+
<!--<MinimumCoverage>True</MinimumCoverage> -->
|
90
|
+
|
91
|
+
<!-- Whether to suppress virtually all console output when running. Default is false. -->
|
92
|
+
<!--<NoLog>True</NoLog> -->
|
93
|
+
|
94
|
+
</ConsoleSetting>
|
Binary file
|
@@ -0,0 +1,339 @@
|
|
1
|
+
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt">
|
2
|
+
<!-- saved from url=(0022)http://www.ncover.org/ -->
|
3
|
+
<!-- created by Yves Lorphelin, largely inspired by the nunitsumary.xsl (see nantcontrib.sourceforge.net)-->
|
4
|
+
<xsl:template match="coverage">
|
5
|
+
<html>
|
6
|
+
<head>
|
7
|
+
<title>NCover Code Coverage Report</title>
|
8
|
+
<style>
|
9
|
+
BODY {
|
10
|
+
font: small verdana, arial, helvetica;
|
11
|
+
color:#000000;
|
12
|
+
}
|
13
|
+
|
14
|
+
P {
|
15
|
+
line-height:1.5em;
|
16
|
+
margin-top:0.5em; margin-bottom:1.0em;
|
17
|
+
}
|
18
|
+
H1 {
|
19
|
+
MARGIN: 0px 0px 5px;
|
20
|
+
FONT: bold larger arial, verdana, helvetica;
|
21
|
+
|
22
|
+
}
|
23
|
+
H2 {
|
24
|
+
MARGIN-TOP: 1em; MARGIN-BOTTOM: 0.5em;
|
25
|
+
FONT: larger verdana,arial,helvetica
|
26
|
+
}
|
27
|
+
H3 {
|
28
|
+
MARGIN-BOTTOM: 0.5em; FONT: bold 13px verdana,arial,helvetica
|
29
|
+
}
|
30
|
+
H4 {
|
31
|
+
MARGIN-BOTTOM: 0.5em; FONT: bold 100% verdana,arial,helvetica
|
32
|
+
}
|
33
|
+
H5 {
|
34
|
+
MARGIN-BOTTOM: 0.5em; FONT: bold 100% verdana,arial,helvetica
|
35
|
+
}
|
36
|
+
H6 {
|
37
|
+
MARGIN-BOTTOM: 0.5em; FONT: bold 100% verdana,arial,helvetica
|
38
|
+
}
|
39
|
+
.notVisited { background:red; }
|
40
|
+
.excluded { background: skyblue; }
|
41
|
+
.visited { background: #90ee90; }
|
42
|
+
.title { font-size: 12px; font-weight: bold; }
|
43
|
+
.assembly { font-size: normal; font-weight: bold; font-size: 11px}
|
44
|
+
.class {font-size:normal; cursor: hand; color: #444444; font-size: 11px}
|
45
|
+
.module { color: navy; font-size: 12px; }
|
46
|
+
.method {cursor: hand; color: ; font-size: 10px; font-weight: bold; }
|
47
|
+
.subtitle { color: black; font-size: 10px; font-weight: bold; }
|
48
|
+
.hdrcell {font-size:9px; background-color: #DDEEFF; }
|
49
|
+
.datacell {font-size:9px; background-color: #FFFFEE; text-align: right; }
|
50
|
+
.hldatacell {font-size:9px; background-color: #FFCCCC; text-align: right; }
|
51
|
+
.exdatacell {font-size:9px; background-color: #DDEEFF; text-align: right; }
|
52
|
+
.detailPercent { font-size: 9px; font-weight: bold; padding-top: 1px; padding-bottom: 1px; padding-left: 3px; padding-right: 3px;}
|
53
|
+
</style>
|
54
|
+
<script language="JavaScript"><![CDATA[
|
55
|
+
function toggle (field)
|
56
|
+
{ field.style.display = (field.style.display == "block") ? "none" : "block"; }
|
57
|
+
|
58
|
+
function SwitchAll(how)
|
59
|
+
{ var len = document.all.length-1;
|
60
|
+
for(i=0;i!=len;i++) {
|
61
|
+
var block = document.all[i];
|
62
|
+
if (block != null && block.id != '')
|
63
|
+
{ block.style.display=how;}
|
64
|
+
}
|
65
|
+
}
|
66
|
+
|
67
|
+
|
68
|
+
function ExpandAll()
|
69
|
+
{SwitchAll('block');}
|
70
|
+
|
71
|
+
function CollapseAll()
|
72
|
+
{SwitchAll('none');}
|
73
|
+
]]></script>
|
74
|
+
</head>
|
75
|
+
<body>
|
76
|
+
<a name="#top"></a>
|
77
|
+
<xsl:call-template name="header" />
|
78
|
+
<xsl:call-template name="ModuleSummary" />
|
79
|
+
<xsl:call-template name="module" />
|
80
|
+
<xsl:call-template name="footer" />
|
81
|
+
<script language="JavaScript">CollapseAll();</script>
|
82
|
+
</body>
|
83
|
+
</html>
|
84
|
+
</xsl:template>
|
85
|
+
<xsl:template name="module">
|
86
|
+
<xsl:for-each select="//module">
|
87
|
+
<xsl:sort select="@assembly" />
|
88
|
+
<xsl:variable name="module" select="./@assembly" />
|
89
|
+
<div class="assembly">
|
90
|
+
<a name="#{generate-id($module)}">Module
|
91
|
+
<xsl:value-of select="$module" />
|
92
|
+
</a>
|
93
|
+
</div>
|
94
|
+
<xsl:for-each select="./method[not(./@class = preceding-sibling::method/@class)]">
|
95
|
+
<xsl:sort select="@class" />
|
96
|
+
<xsl:sort select="@name" />
|
97
|
+
<xsl:call-template name="ClassSummary">
|
98
|
+
<xsl:with-param name="module" select="$module" />
|
99
|
+
<xsl:with-param name="class" select="./@class" />
|
100
|
+
</xsl:call-template>
|
101
|
+
</xsl:for-each>
|
102
|
+
</xsl:for-each>
|
103
|
+
<xsl:variable name="totalMod" select="count(./method/seqpnt[@excluded='false'])" />
|
104
|
+
<xsl:variable name="notvisitedMod" select="count( ./method/seqpnt[ @visitcount='0'][@excluded='false'] ) div $totalMod * 100 " />
|
105
|
+
<xsl:variable name="visitedMod" select="count(./method/seqpnt[not(@visitcount='0')] ) div $totalMod * 100" />
|
106
|
+
</xsl:template>
|
107
|
+
<xsl:template name="Methods">
|
108
|
+
<xsl:param name="module" />
|
109
|
+
<xsl:param name="class" />
|
110
|
+
<xsl:for-each select="//method[(@class = $class) and (parent::module/@assembly=$module)]">
|
111
|
+
<xsl:sort select="@name" />
|
112
|
+
<xsl:variable name="total" select="count(./seqpnt[@excluded='false'])" />
|
113
|
+
<xsl:variable name="notvisited" select="count(./seqpnt[@visitcount='0'][@excluded='false'] ) " />
|
114
|
+
<xsl:variable name="visited" select="count(./seqpnt[not(@visitcount='0')])" />
|
115
|
+
<xsl:variable name="methid" select="generate-id(.)" />
|
116
|
+
<table cellpadding="3" cellspacing="0" width="90%">
|
117
|
+
<tr>
|
118
|
+
<td width="45%" class='method'>
|
119
|
+
<xsl:attribute name="onclick">javascript:toggle(
|
120
|
+
<xsl:value-of select="$methid" />)
|
121
|
+
</xsl:attribute>
|
122
|
+
<xsl:value-of select="@name" />
|
123
|
+
</td>
|
124
|
+
<td width="55%">
|
125
|
+
<xsl:call-template name="detailPercent">
|
126
|
+
<xsl:with-param name="visited" select="$visited" />
|
127
|
+
<xsl:with-param name="notVisited" select="$notvisited" />
|
128
|
+
<xsl:with-param name="total" select="$total" />
|
129
|
+
</xsl:call-template>
|
130
|
+
</td>
|
131
|
+
</tr>
|
132
|
+
</table>
|
133
|
+
<xsl:call-template name="seqpnt">
|
134
|
+
<xsl:with-param name="module" select="$module" />
|
135
|
+
<xsl:with-param name="class" select="$class" />
|
136
|
+
<xsl:with-param name="id" select="$methid" />
|
137
|
+
</xsl:call-template>
|
138
|
+
</xsl:for-each>
|
139
|
+
</xsl:template>
|
140
|
+
<xsl:template name="seqpnt">
|
141
|
+
<xsl:param name="module" />
|
142
|
+
<xsl:param name="class" />
|
143
|
+
<xsl:param name="id" />
|
144
|
+
<table cellpadding="3" cellspacing="0" border='1' width="90%" bordercolor="black" style="display: block;">
|
145
|
+
<xsl:attribute name="id">
|
146
|
+
<xsl:value-of select="$id" />
|
147
|
+
</xsl:attribute>
|
148
|
+
<tr>
|
149
|
+
<td class="hdrcell">Visits</td>
|
150
|
+
<td class="hdrcell">Line</td>
|
151
|
+
<td class="hdrcell">End</td>
|
152
|
+
<td class="hdrcell">Column</td>
|
153
|
+
<td class="hdrcell">End</td>
|
154
|
+
<td class="hdrcell">Document</td>
|
155
|
+
</tr>
|
156
|
+
<xsl:for-each select="./seqpnt">
|
157
|
+
<xsl:sort select="@line" />
|
158
|
+
<tr>
|
159
|
+
<td class="datacell">
|
160
|
+
<xsl:attribute name="class">
|
161
|
+
<xsl:choose>
|
162
|
+
<xsl:when test="@excluded = 'true'">exdatacell</xsl:when>
|
163
|
+
<xsl:when test="@visitcount = 0">hldatacell</xsl:when>
|
164
|
+
<xsl:otherwise>datacell</xsl:otherwise>
|
165
|
+
</xsl:choose>
|
166
|
+
</xsl:attribute>
|
167
|
+
<xsl:choose>
|
168
|
+
<xsl:when test="@excluded = 'true'">---</xsl:when>
|
169
|
+
<xsl:otherwise><xsl:value-of select="@visitcount" /></xsl:otherwise>
|
170
|
+
</xsl:choose>
|
171
|
+
</td>
|
172
|
+
<td class="datacell">
|
173
|
+
<xsl:value-of select="@line" />
|
174
|
+
</td>
|
175
|
+
<td class="datacell">
|
176
|
+
<xsl:value-of select="@endline" />
|
177
|
+
</td>
|
178
|
+
<td class="datacell">
|
179
|
+
<xsl:value-of select="@column" />
|
180
|
+
</td>
|
181
|
+
<td class="datacell">
|
182
|
+
<xsl:value-of select="@endcolumn" />
|
183
|
+
</td>
|
184
|
+
<td class="datacell">
|
185
|
+
<xsl:value-of select="@document" />
|
186
|
+
</td>
|
187
|
+
</tr>
|
188
|
+
</xsl:for-each>
|
189
|
+
</table>
|
190
|
+
</xsl:template>
|
191
|
+
<!-- Class Summary -->
|
192
|
+
<xsl:template name="ClassSummary">
|
193
|
+
<xsl:param name="module" />
|
194
|
+
<xsl:param name="class" />
|
195
|
+
<xsl:variable name="total" select="count(//seqpnt[(parent::method/parent::module/@assembly=$module) and (parent::method/@class=$class) and (@excluded='false') ])" />
|
196
|
+
<xsl:variable name="notvisited" select="count(//seqpnt[(parent::method/parent::module/@assembly=$module)and (parent::method/@class=$class) and (@visitcount='0') and (@excluded='false')] )" />
|
197
|
+
<xsl:variable name="visited" select="count(//seqpnt[(parent::method/parent::module/@assembly=$module) and (parent::method/@class=$class) and (not(@visitcount='0'))] )" />
|
198
|
+
<xsl:variable name="newid" select="concat (generate-id(), 'class')" />
|
199
|
+
<table width='90%'>
|
200
|
+
<tr>
|
201
|
+
<td width="40%" class="class">
|
202
|
+
<xsl:attribute name="onclick">javascript:toggle(
|
203
|
+
<xsl:value-of select="$newid" />)
|
204
|
+
</xsl:attribute>
|
205
|
+
<xsl:value-of select="$class" />
|
206
|
+
</td>
|
207
|
+
<td width="60%">
|
208
|
+
<xsl:call-template name="detailPercent">
|
209
|
+
<xsl:with-param name="visited" select="$visited" />
|
210
|
+
<xsl:with-param name="notVisited" select="$notvisited" />
|
211
|
+
<xsl:with-param name="total" select="$total" />
|
212
|
+
</xsl:call-template>
|
213
|
+
</td>
|
214
|
+
</tr>
|
215
|
+
<tr>
|
216
|
+
<table style="display: block;" width="100%">
|
217
|
+
<tr>
|
218
|
+
<td>
|
219
|
+
<xsl:attribute name="id">
|
220
|
+
<xsl:value-of select="$newid" />
|
221
|
+
</xsl:attribute>
|
222
|
+
<xsl:call-template name="Methods">
|
223
|
+
<xsl:with-param name="module" select="$module" />
|
224
|
+
<xsl:with-param name="class" select="$class" />
|
225
|
+
</xsl:call-template>
|
226
|
+
</td>
|
227
|
+
</tr>
|
228
|
+
</table>
|
229
|
+
</tr>
|
230
|
+
</table>
|
231
|
+
<hr size="1" width='90%' align='left' style=" border-bottom: 1px dotted #999;" />
|
232
|
+
</xsl:template>
|
233
|
+
<xsl:template name="ClassSummaryDetail">
|
234
|
+
<xsl:param name="module" />
|
235
|
+
<xsl:variable name="total" select="count(./method/seqpnt[ @excluded='false' ])" />
|
236
|
+
<xsl:variable name="notVisited" select="count( ./method/seqpnt[ @visitcount='0'][ @excluded='false' ] )" />
|
237
|
+
<xsl:variable name="visited" select="count(./method/seqpnt[not(@visitcount='0')] )" />
|
238
|
+
<td width="35%">
|
239
|
+
<div class="assembly">
|
240
|
+
<a href="#{generate-id($module)}">
|
241
|
+
<xsl:value-of select="$module" />
|
242
|
+
</a>
|
243
|
+
</div>
|
244
|
+
</td>
|
245
|
+
<td width="65%">
|
246
|
+
<xsl:call-template name="detailPercent">
|
247
|
+
<xsl:with-param name="visited" select="$visited" />
|
248
|
+
<xsl:with-param name="notVisited" select="$notVisited" />
|
249
|
+
<xsl:with-param name="total" select="$total" />
|
250
|
+
</xsl:call-template>
|
251
|
+
</td>
|
252
|
+
</xsl:template>
|
253
|
+
<!-- Modules Summary -->
|
254
|
+
<xsl:template name="ModuleSummary">
|
255
|
+
<H2>Modules summary</H2>
|
256
|
+
<xsl:for-each select="//module">
|
257
|
+
<xsl:sort select="@assembly" />
|
258
|
+
<table width='90%'>
|
259
|
+
<tr>
|
260
|
+
<xsl:call-template name="ModuleSummaryDetail">
|
261
|
+
<xsl:with-param name="module" select="./@assembly" />
|
262
|
+
</xsl:call-template>
|
263
|
+
</tr>
|
264
|
+
</table>
|
265
|
+
</xsl:for-each>
|
266
|
+
<hr size="1" />
|
267
|
+
</xsl:template>
|
268
|
+
<xsl:template name="ModuleSummaryDetail">
|
269
|
+
<xsl:param name="module" />
|
270
|
+
<xsl:variable name="total" select="count(./method/seqpnt[@excluded='false'])" />
|
271
|
+
<xsl:variable name="notVisited" select="count( ./method/seqpnt[ @visitcount='0' ][ @excluded='false' ] )" />
|
272
|
+
<xsl:variable name="visited" select="count(./method/seqpnt[not(@visitcount='0')] )" />
|
273
|
+
<td width="30%">
|
274
|
+
<div class="assembly">
|
275
|
+
<a href="#{generate-id($module)}">
|
276
|
+
<xsl:value-of select="$module" />
|
277
|
+
</a>
|
278
|
+
</div>
|
279
|
+
</td>
|
280
|
+
<td width="70%">
|
281
|
+
<xsl:call-template name="detailPercent">
|
282
|
+
<xsl:with-param name="visited" select="$visited" />
|
283
|
+
<xsl:with-param name="notVisited" select="$notVisited" />
|
284
|
+
<xsl:with-param name="total" select="$total" />
|
285
|
+
</xsl:call-template>
|
286
|
+
</td>
|
287
|
+
</xsl:template>
|
288
|
+
<!-- General Header -->
|
289
|
+
<xsl:template name="header">
|
290
|
+
<h1>
|
291
|
+
<b>NCover</b> Code Coverage Report
|
292
|
+
</h1>
|
293
|
+
<table>
|
294
|
+
<tr>
|
295
|
+
<td class="class">
|
296
|
+
<a onClick="ExpandAll();">Expand</a>
|
297
|
+
</td>
|
298
|
+
<td> | </td>
|
299
|
+
<td class="class">
|
300
|
+
<a onClick="CollapseAll();">Collapse</a>
|
301
|
+
</td>
|
302
|
+
</tr>
|
303
|
+
</table>
|
304
|
+
<hr size="1" />
|
305
|
+
</xsl:template>
|
306
|
+
<xsl:template name="footer">
|
307
|
+
<hr size="1" />
|
308
|
+
<a class="detailPercent" href="#{top}">Top</a>
|
309
|
+
</xsl:template>
|
310
|
+
<!-- draw % table-->
|
311
|
+
<xsl:template name="detailPercent">
|
312
|
+
<xsl:param name="visited" />
|
313
|
+
<xsl:param name="notVisited" />
|
314
|
+
<xsl:param name="total" />
|
315
|
+
<table width="100%" class="detailPercent">
|
316
|
+
<tr>
|
317
|
+
<xsl:if test="($notVisited=0) and ($visited=0)">
|
318
|
+
<td class="excluded" width="100%">Excluded</td>
|
319
|
+
</xsl:if>
|
320
|
+
<xsl:if test="not($notVisited=0)">
|
321
|
+
<td class="notVisited">
|
322
|
+
<xsl:attribute name="width">
|
323
|
+
<xsl:value-of select="concat($notVisited div $total * 100,'%')" />
|
324
|
+
</xsl:attribute>
|
325
|
+
<xsl:value-of select="concat (format-number($notVisited div $total * 100,'#.##'),'%')" />
|
326
|
+
</td>
|
327
|
+
</xsl:if>
|
328
|
+
<xsl:if test="not ($visited=0)">
|
329
|
+
<td class="visited">
|
330
|
+
<xsl:attribute name="width">
|
331
|
+
<xsl:value-of select="concat($visited div $total * 100,'%')" />
|
332
|
+
</xsl:attribute>
|
333
|
+
<xsl:value-of select="concat (format-number($visited div $total * 100,'#.##'), '%')" />
|
334
|
+
</td>
|
335
|
+
</xsl:if>
|
336
|
+
</tr>
|
337
|
+
</table>
|
338
|
+
</xsl:template>
|
339
|
+
</xsl:stylesheet>
|