uppercutbuild 1.2.0.0 → 1.3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/docs/README +4 -0
- data/lib/build/UppercuT.xml +1 -1
- data/lib/build/analyzers/nunit.test.step +2 -2
- data/lib/build/analyzers/test.step +3 -0
- data/lib/build/analyzers/xunit.test.step +154 -0
- data/lib/build/package.step +6 -0
- data/lib/build/uppercut.dll +0 -0
- data/lib/build/uppercut.tasks.dll +0 -0
- data/lib/build/versionBuilder.step +1 -1
- data/lib/build/versioners/svn.step +5 -4
- data/lib/build/versioners/tfs.step +2 -1
- data/lib/deployment/templates/DBDeployment.RESTORE.bat +9 -2
- data/lib/deployment/templates/DBDeployment.bat +9 -2
- data/lib/lib/xUnit/HTML.xslt +128 -0
- data/lib/lib/xUnit/NUnitXml.xslt +121 -0
- data/lib/lib/xUnit/xunit.console.clr4.exe +0 -0
- data/lib/lib/xUnit/xunit.console.clr4.exe.config +21 -0
- data/lib/lib/xUnit/xunit.console.clr4.x86.exe +0 -0
- data/lib/lib/xUnit/xunit.console.clr4.x86.exe.config +21 -0
- data/lib/lib/xUnit/xunit.console.exe +0 -0
- data/lib/lib/xUnit/xunit.console.exe.config +21 -0
- data/lib/lib/xUnit/xunit.console.x86.exe +0 -0
- data/lib/lib/xUnit/xunit.console.x86.exe.config +21 -0
- data/lib/lib/xUnit/xunit.dll +0 -0
- data/lib/lib/xUnit/xunit.extensions.dll +0 -0
- data/lib/lib/xUnit/xunit.runner.msbuild.dll +0 -0
- data/lib/lib/xUnit/xunit.runner.tdnet.dll +0 -0
- data/lib/lib/xUnit/xunit.runner.utility.dll +0 -0
- data/lib/settings/UppercuT.config +6 -4
- metadata +20 -4
data/docs/README
CHANGED
@@ -59,6 +59,10 @@ It helps keep to the product updated, pays for site hosting, etc. https://www.pa
|
|
59
59
|
* Adding in support for xUnit.
|
60
60
|
* Adding in support for StorEvil.
|
61
61
|
|
62
|
+
==1.3.0.0==
|
63
|
+
* Fix for spaces in the path when trying to resolve the revision for SVN - see http://code.google.com/p/uppercut/issues/detail?id=25 for details. (385)
|
64
|
+
* xUnit Support for automated testing. Will handle multiple test assemblies for you. (384)
|
65
|
+
|
62
66
|
=1.2.0.0=
|
63
67
|
* NuGet Support. New settings have been added to the uppercut.config: <property name="app.nuget" value="..${path.separator}${folder.references}${path.separator}NuGet${path.separator}NuGet.exe" overwrite="false" /> and a tool that goes under the lib folder: NuGet - see http://code.google.com/p/uppercut/issues/detail?id=20 for details. (378)
|
64
68
|
|
data/lib/build/UppercuT.xml
CHANGED
@@ -28,8 +28,8 @@
|
|
28
28
|
<property name="nunit.separator" value="/" if="${platform::is-windows()}" />
|
29
29
|
<property name="test.args.framework" value="" if="${platform::is-unix()}" />
|
30
30
|
<property name="test.args.framework" value="${nunit.separator}framework=${microsoft.framework}" if="${platform::is-windows()}" />
|
31
|
-
|
32
|
-
|
31
|
+
<!--property name="test.args" value="${nunit.separator}xml="${dirs.test_results}${path.separator}nunit-results.xml" ${nunit.separator}nologo " /-->
|
32
|
+
<property name="test.args" value="${nunit.separator}xml="${dirs.test_results}${path.separator}nunit-results.xml" ${nunit.separator}nologo ${test.args.framework}" />
|
33
33
|
<property name="test.args.exclude" value="${nunit.separator}exclude="${tests.excluded_categories.comma_separated}"" />
|
34
34
|
<property name="app.nunit.console" value="${path::get-full-path(dirs.lib)}${path.separator}NUnit${path.separator}nunit-console.exe" overwrite="false" if="${platform::is-windows()}" />
|
35
35
|
<property name="app.nunit.console" value="nunit-console" overwrite="false" if="${platform::is-unix()}"/>
|
@@ -66,6 +66,7 @@
|
|
66
66
|
<nant buildfile="${dirs.current}${path.separator}mbunit2.test.step" inheritall="true" if="${test.framework=='mbunit2'}" />
|
67
67
|
<nant buildfile="${dirs.current}${path.separator}gallio.test.step" inheritall="true" if="${test.framework=='gallio'}" />
|
68
68
|
<nant buildfile="${dirs.current}${path.separator}nunit.test.step" inheritall="true" if="${test.framework=='nunit'}" />
|
69
|
+
<nant buildfile="${dirs.current}${path.separator}xunit.test.step" inheritall="true" if="${test.framework=='xunit'}" />
|
69
70
|
<call target="set_normal_failure_mode" />
|
70
71
|
</target>
|
71
72
|
|
@@ -73,6 +74,7 @@
|
|
73
74
|
<nant buildfile="${dirs.current}${path.separator}mbunit2.test.step" target="run_all_tests" inheritall="true" if="${test.framework=='mbunit2'}" />
|
74
75
|
<nant buildfile="${dirs.current}${path.separator}gallio.test.step" target="run_all_tests" inheritall="true" if="${test.framework=='gallio'}" />
|
75
76
|
<nant buildfile="${dirs.current}${path.separator}nunit.test.step" target="run_all_tests" inheritall="true" if="${test.framework=='nunit'}" />
|
77
|
+
<nant buildfile="${dirs.current}${path.separator}xunit.test.step" target="run_all_tests" inheritall="true" if="${test.framework=='xunit'}" />
|
76
78
|
<call target="set_normal_failure_mode" />
|
77
79
|
</target>
|
78
80
|
|
@@ -80,6 +82,7 @@
|
|
80
82
|
<nant buildfile="${dirs.current}${path.separator}mbunit2.test.step" target="open_results" inheritall="true" if="${test.framework=='mbunit2'}" />
|
81
83
|
<nant buildfile="${dirs.current}${path.separator}gallio.test.step" target="open_results" inheritall="true" if="${test.framework=='gallio'}" />
|
82
84
|
<nant buildfile="${dirs.current}${path.separator}nunit.test.step" target="open_results" inheritall="true" if="${test.framework=='nunit'}" />
|
85
|
+
<nant buildfile="${dirs.current}${path.separator}xunit.test.step" target="open_results" inheritall="true" if="${test.framework=='xunit'}" />
|
83
86
|
</target>
|
84
87
|
|
85
88
|
<target name="set_normal_failure_mode">
|
@@ -0,0 +1,154 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8" ?>
|
2
|
+
<project name="XUnitTester" default="go">
|
3
|
+
<!-- Project UppercuT - http://projectuppercut.org -->
|
4
|
+
<!-- DO NOT EDIT THIS FILE - This follows a convention for testing with Integration tests being separated from Unit tests - find out more at http://uppercut.pbwiki.com -->
|
5
|
+
<property name="build.config.settings" value="__NONE__" overwrite="false" />
|
6
|
+
<include buildfile="${build.config.settings}" if="${file::exists(build.config.settings)}" />
|
7
|
+
<property name="path.separator" value="${string::trim(path::combine(' ', ' '))}" />
|
8
|
+
<include buildfile="..${path.separator}csharp.functions" />
|
9
|
+
<property name="file.current.no_extension" value="xunit.test" />
|
10
|
+
<property name="dirs.current" value="${directory::get-parent-directory(project::get-buildfile-path())}" />
|
11
|
+
<property name="path.to.toplevel" value="..${path.separator}.." />
|
12
|
+
<property name="folder.build_scripts" value="build" overwrite="false" />
|
13
|
+
<property name="folder.build_scripts_custom" value="build.custom" overwrite="false" />
|
14
|
+
<property name="dirs.build_scripts_custom" value="${dirs.current}${path.separator}${path.to.toplevel}${path.separator}${folder.build_scripts_custom}${path.separator}analyzers" />
|
15
|
+
<property name="folder.code_build" value="build_output" overwrite="false" />
|
16
|
+
<property name="dirs.build" value="${dirs.current}${path.separator}${path.to.toplevel}${path.separator}${folder.code_build}" />
|
17
|
+
<property name="folder.app.drop" value="${project.name}" overwrite="false" />
|
18
|
+
<property name="dirs.build.code" value="${dirs.build}${path.separator}${folder.app.drop}" overwrite="false" />
|
19
|
+
<property name="folder.references" value="lib" overwrite="false" />
|
20
|
+
<property name="dirs.lib" value="${dirs.current}${path.separator}${path.to.toplevel}${path.separator}${folder.references}" overwrite="false" />
|
21
|
+
<property name="microsoft.framework" value="net-3.5" overwrite="false" />
|
22
|
+
<property name="folder.build_artifacts" value="build_artifacts" overwrite="false" />
|
23
|
+
<property name="dirs.build_artifacts" value="${path::get-full-path(dirs.build)}${path.separator}${folder.build_artifacts}" />
|
24
|
+
|
25
|
+
<property name="dirs.test_results" value="${dirs.build_artifacts}${path.separator}xunit" overwrite="false" />
|
26
|
+
<property name="file.test_results" value="index" overwrite="false" />
|
27
|
+
<property name="tests.excluded_categories.comma_separated" value="Database,Integration,Slow,NotWorking,Ignore,database,integration,slow,notworking,ignore" overwrite="false" />
|
28
|
+
<property name="xunit.separator" value="--" if="${platform::is-unix()}" />
|
29
|
+
<property name="xunit.separator" value="/" if="${platform::is-windows()}" />
|
30
|
+
<property name="test.args" value="${xunit.separator}xml "${dirs.test_results}${path.separator}xunit-results.xml" ${xunit.separator}html "${dirs.test_results}${path.separator}xunit-results.html" ${xunit.separator}nunit "${dirs.test_results}${path.separator}nunit-nresults.xml" " />
|
31
|
+
<property name="test.args.exclude" value="${xunit.separator}exclude="${tests.excluded_categories.comma_separated}"" />
|
32
|
+
<property name="app.xunit.console" value="${path::get-full-path(dirs.lib)}${path.separator}xUnit${path.separator}xunit.console.clr4.exe" overwrite="false" if="${platform::is-windows()}" />
|
33
|
+
<property name="app.xunit.console" value="${path::get-full-path(dirs.lib)}${path.separator}xUnit${path.separator}xunit-console" overwrite="false" if="${platform::is-unix()}"/>
|
34
|
+
<property name="dlls.test" value="" />
|
35
|
+
<property name="tests.ran" value="false" />
|
36
|
+
<property name="tests.run_all" value="false" />
|
37
|
+
|
38
|
+
<property name="file.custom.step.before" value="${dirs.build_scripts_custom}${path.separator}${file.current.no_extension}.pre.step" />
|
39
|
+
<property name="file.custom.step.after" value="${dirs.build_scripts_custom}${path.separator}${file.current.no_extension}.post.step" />
|
40
|
+
<property name="file.custom.step.replace" value="${dirs.build_scripts_custom}${path.separator}${file.current.no_extension}.replace.step" />
|
41
|
+
<property name="is.replaced" value="false" />
|
42
|
+
<property name="fail.build.on.error" value="true" />
|
43
|
+
|
44
|
+
<target name="go" depends="run_tasks" />
|
45
|
+
|
46
|
+
<target name="run_all_tests" depends="prepare, set_run_all_flag, run_tests, generate_report" description="Like go but runs all tests" />
|
47
|
+
|
48
|
+
<target name="run_tasks">
|
49
|
+
<echo message="Running ${project::get-name()} tasks." />
|
50
|
+
<call target="prepare" if="${target::exists('prepare')}" />
|
51
|
+
<call target="custom_tasks_before" if="${target::exists('custom_tasks_before')}" />
|
52
|
+
<call target="custom_tasks_replace" if="${target::exists('custom_tasks_replace')}" />
|
53
|
+
<call target="run_normal_tasks" if="${not is.replaced}" />
|
54
|
+
<call target="custom_tasks_after" if="${target::exists('custom_tasks_after')}" />
|
55
|
+
</target>
|
56
|
+
|
57
|
+
<target name="run_normal_tasks"
|
58
|
+
depends="run_tests, generate_report"
|
59
|
+
description="Testing with NUnit." />
|
60
|
+
|
61
|
+
<target name="custom_tasks_before">
|
62
|
+
<echo message="Running custom tasks if ${file.custom.step.before} exists." />
|
63
|
+
<nant buildfile="${file.custom.step.before}" inheritall="true" if="${file::exists(file.custom.step.before)}" failonerror="${fail.build.on.error}" />
|
64
|
+
<exec program="powershell.exe" if="${file::exists(file.custom.step.before + '.ps1')}" failonerror="${fail.build.on.error}">
|
65
|
+
<arg value="${path::get-full-path(file.custom.step.before + '.ps1')}" />
|
66
|
+
</exec>
|
67
|
+
<exec program="ruby.exe" if="${file::exists(file.custom.step.before + '.rb')}" failonerror="${fail.build.on.error}">
|
68
|
+
<arg value="${path::get-full-path(file.custom.step.before + '.rb')}" />
|
69
|
+
</exec>
|
70
|
+
</target>
|
71
|
+
|
72
|
+
<target name="custom_tasks_replace">
|
73
|
+
<echo message="Running custom tasks instead of normal tasks if ${file.custom.step.replace} exists." />
|
74
|
+
<property name="is.replaced" value="true" if="${file::exists(file.custom.step.replace)}" />
|
75
|
+
<nant buildfile="${file.custom.step.replace}" inheritall="true" if="${file::exists(file.custom.step.replace)}" failonerror="${fail.build.on.error}" />
|
76
|
+
<property name="is.replaced" value="true" if="${file::exists(file.custom.step.replace + '.ps1')}" />
|
77
|
+
<exec program="powershell.exe" if="${file::exists(file.custom.step.replace + '.ps1')}" failonerror="${fail.build.on.error}" >
|
78
|
+
<arg value="${path::get-full-path(file.custom.step.replace + '.ps1')}" />
|
79
|
+
</exec>
|
80
|
+
<property name="is.replaced" value="true" if="${file::exists(file.custom.step.replace + '.rb')}" />
|
81
|
+
<exec program="ruby.exe" if="${file::exists(file.custom.step.replace + '.rb')}" failonerror="${fail.build.on.error}" >
|
82
|
+
<arg value="${path::get-full-path(file.custom.step.replace + '.rb')}" />
|
83
|
+
</exec>
|
84
|
+
</target>
|
85
|
+
|
86
|
+
<target name="prepare">
|
87
|
+
<echo message="Removing and adding ${dirs.test_results}."/>
|
88
|
+
<delete dir="${dirs.test_results}" failonerror="false" />
|
89
|
+
<mkdir dir="${dirs.test_results}" />
|
90
|
+
</target>
|
91
|
+
|
92
|
+
<target name="set_run_all_flag">
|
93
|
+
<echo message="Running ALL test assemblies including integration and database tests with xUnit." />
|
94
|
+
<property name="tests.run_all" value="true" />
|
95
|
+
</target>
|
96
|
+
|
97
|
+
<target name="run_tests" depends="prepare" description="Running Unit Tests">
|
98
|
+
<foreach item="File" property="dll.filename">
|
99
|
+
<in>
|
100
|
+
<items>
|
101
|
+
<exclude name="${dirs.build.code}${path.separator}lib${path.separator}**" />
|
102
|
+
<exclude name="${dirs.build.code}${path.separator}**${path.separator}*Database*dll" if="${not tests.run_all}" />
|
103
|
+
<exclude name="${dirs.build.code}${path.separator}**${path.separator}*.Integration*dll" if="${not tests.run_all}" />
|
104
|
+
<exclude name="${dirs.build.code}${path.separator}**${path.separator}TestFu.dll" />
|
105
|
+
<exclude name="${dirs.build.code}${path.separator}**${path.separator}Microsoft.*.dll" />
|
106
|
+
<include name="${dirs.build.code}${path.separator}**${path.separator}*Test*dll" />
|
107
|
+
<include name="${dirs.build.code}${path.separator}**${path.separator}*Spec*dll" />
|
108
|
+
</items>
|
109
|
+
</in>
|
110
|
+
<do>
|
111
|
+
<if test="${dll.filename !=''}">
|
112
|
+
<property name="dll.name" value="${string::replace(string::replace(dll.filename,path::get-full-path(dirs.build.code) + '\',''),'\',path.separator)}" />
|
113
|
+
<property name="test.args" value="${xunit.separator}xml "${dirs.test_results}${path.separator}${dll.name}-results.xml" ${xunit.separator}html "${dirs.test_results}${path.separator}${dll.name}-results.html" ${xunit.separator}nunit "${dirs.test_results}${path.separator}${dll.name}-nresults.xml" " />
|
114
|
+
<property name="args.test_runner" value="${dll.name} ${test.args} " />
|
115
|
+
<echo message="Running tests using xUnit with args '${args.test_runner}' and putting results in ${dirs.test_results}."/>
|
116
|
+
<exec
|
117
|
+
program="${app.xunit.console}"
|
118
|
+
workingdir="${dirs.build.code}"
|
119
|
+
failonerror="true">
|
120
|
+
<arg value="${args.test_runner}" />
|
121
|
+
</exec>
|
122
|
+
<property name="tests.ran" value="true" />
|
123
|
+
</if>
|
124
|
+
</do>
|
125
|
+
</foreach>
|
126
|
+
</target>
|
127
|
+
|
128
|
+
<target name="generate_report">
|
129
|
+
<if test="${tests.ran}">
|
130
|
+
<nunit2report todir="${dirs.test_results}" failonerror="false" >
|
131
|
+
<fileset>
|
132
|
+
<include name="${dirs.test_results}${path.separator}*-nresults.xml"/>
|
133
|
+
</fileset>
|
134
|
+
</nunit2report>
|
135
|
+
</if>
|
136
|
+
</target>
|
137
|
+
|
138
|
+
<target name="open_results">
|
139
|
+
<echo message="Opening results - ${path::get-full-path(dirs.test_results) + path.separator + file.test_results + '.html'}" />
|
140
|
+
<results display="${path::get-full-path(dirs.test_results) + path.separator + file.test_results + '.html'}" />
|
141
|
+
</target>
|
142
|
+
|
143
|
+
<target name="custom_tasks_after">
|
144
|
+
<echo message="Running custom tasks if ${file.custom.step.after} exists." />
|
145
|
+
<nant buildfile="${file.custom.step.after}" inheritall="true" if="${file::exists(file.custom.step.after)}" failonerror="${fail.build.on.error}" />
|
146
|
+
<exec program="powershell.exe" if="${file::exists(file.custom.step.after + '.ps1')}" failonerror="${fail.build.on.error}" >
|
147
|
+
<arg value="${path::get-full-path(file.custom.step.after + '.ps1')}" />
|
148
|
+
</exec>
|
149
|
+
<exec program="ruby.exe" if="${file::exists(file.custom.step.after + '.rb')}" failonerror="${fail.build.on.error}" >
|
150
|
+
<arg value="${path::get-full-path(file.custom.step.after + '.rb')}" />
|
151
|
+
</exec>
|
152
|
+
</target>
|
153
|
+
|
154
|
+
</project>
|
data/lib/build/package.step
CHANGED
@@ -25,6 +25,7 @@
|
|
25
25
|
<property name="folder.settings" value="settings" overwrite="false" />
|
26
26
|
<property name="folder.documentation" value="docs" overwrite="false" />
|
27
27
|
<property name="file.build_info" value="${dirs.build}${path.separator}_BuildInfo.xml" />
|
28
|
+
<property name="file.build_log" value="${dirs.build}${path.separator}build.log" />
|
28
29
|
<property name="file.custom.step.before" value="${dirs.build_scripts_custom}${path.separator}${file.current.no_extension}.pre.step" />
|
29
30
|
<property name="file.custom.step.after" value="${dirs.build_scripts_custom}${path.separator}${file.current.no_extension}.post.step" />
|
30
31
|
<property name="file.custom.step.replace" value="${dirs.build_scripts_custom}${path.separator}${file.current.no_extension}.replace.step" />
|
@@ -202,6 +203,11 @@
|
|
202
203
|
file="${file.build_info}"
|
203
204
|
todir="${dirs.drop}${path.separator}${folder.build_artifacts}"
|
204
205
|
/>
|
206
|
+
|
207
|
+
<copy
|
208
|
+
file="${file.build_log}"
|
209
|
+
todir="${dirs.drop}${path.separator}${folder.build_artifacts}"
|
210
|
+
/>
|
205
211
|
|
206
212
|
<copy
|
207
213
|
file="${file.build_info}"
|
data/lib/build/uppercut.dll
CHANGED
Binary file
|
Binary file
|
@@ -139,7 +139,7 @@
|
|
139
139
|
<attribute type="AssemblyProductAttribute" value="${project.name}" />
|
140
140
|
<attribute type="AssemblyDescriptionAttribute" value="${assembly.description}" />
|
141
141
|
<attribute type="AssemblyTrademarkAttribute" value="${project.name} - ${company.name}" />
|
142
|
-
<attribute type="AssemblyCopyrightAttribute" value="Copyright ${datetime::get-year(datetime::now())} ${company.name}, - Original author or authors" />
|
142
|
+
<attribute type="AssemblyCopyrightAttribute" value="Copyright © ${datetime::get-year(datetime::now())} ${company.name}, - Original author or authors" />
|
143
143
|
<attribute type="AllowPartiallyTrustedCallers" if="${allow.partially_trusted_callers}" asis="true" />
|
144
144
|
<attribute type="AssemblyKeyFileAttribute" value="${file.key.name.private}" if="${sign.project_with_key and not sign.key.use_relative_pathing}" />
|
145
145
|
<attribute type="AssemblyKeyFileAttribute" value="${sign.key.relative_path_from_projects}${path.separator}${path::get-file-name(file.key.name.private)}" if="${sign.project_with_key and sign.key.use_relative_pathing}" />
|
@@ -60,13 +60,14 @@
|
|
60
60
|
</target>
|
61
61
|
|
62
62
|
<target name="get_revision">
|
63
|
-
<echo message="Getting revision number from working directory ${
|
63
|
+
<echo message="Getting revision number from working directory '${dirs.current}${path.separator}${path.to.toplevel}${path.separator}' or remotely at ${repository.path}."/>
|
64
64
|
<!-- try to update the revision -->
|
65
65
|
<exec
|
66
66
|
program="svn"
|
67
|
-
|
67
|
+
workingdir="${dirs.current}${path.separator}${path.to.toplevel}${path.separator}"
|
68
|
+
commandline="info .\ --xml"
|
68
69
|
output="_revision.xml"
|
69
|
-
failonerror="false"/>
|
70
|
+
failonerror="false" />
|
70
71
|
<xmlpeek
|
71
72
|
file="_revision.xml"
|
72
73
|
xpath="/info/entry/commit/@revision"
|
@@ -74,7 +75,7 @@
|
|
74
75
|
failonerror="false"/>
|
75
76
|
<exec
|
76
77
|
program="svn"
|
77
|
-
commandline=
|
78
|
+
commandline='info "${repository.path}" --xml'
|
78
79
|
output="_revision.xml"
|
79
80
|
failonerror="false"
|
80
81
|
if="${version.revision == '0'}"
|
@@ -63,7 +63,8 @@
|
|
63
63
|
<target name="get_revision">
|
64
64
|
<exec
|
65
65
|
program="tf"
|
66
|
-
|
66
|
+
workingdir="${dirs.current}${path.separator}${path.to.toplevel}${path.separator}"
|
67
|
+
commandline="history .\ /r /noprompt /stopafter:1 /version:W"
|
67
68
|
output="_revision.xml"
|
68
69
|
failonerror="false"/>
|
69
70
|
<loadfile
|
@@ -2,8 +2,15 @@
|
|
2
2
|
|
3
3
|
SET DIR=%~d0%~p0%
|
4
4
|
|
5
|
-
SET
|
5
|
+
SET database.name="${database.name}"
|
6
|
+
SET sql.files.directory="${dirs.db}"
|
7
|
+
SET backup.file="${restore.from.path}"
|
8
|
+
SET server.database="${server.database}"
|
9
|
+
SET repository.path="${repository.path}"
|
10
|
+
SET version.file="_BuildInfo.xml"
|
11
|
+
SET version.xpath="//buildInfo/version"
|
12
|
+
SET environment="${environment}"
|
6
13
|
|
7
|
-
"%DIR%
|
14
|
+
"%DIR%rh\rh.exe" /d=%database.name% /f=%sql.files.directory% /s=%server.database% /vf=%version.file% /vx=%version.xpath% /r=%repository.path% /env=%environment% /simple /restore /rfp=%backup.file% /rt=1200
|
8
15
|
|
9
16
|
pause
|
@@ -2,8 +2,15 @@
|
|
2
2
|
|
3
3
|
SET DIR=%~d0%~p0%
|
4
4
|
|
5
|
-
SET
|
5
|
+
SET database.name="${database.name}"
|
6
|
+
SET sql.files.directory="${dirs.db}"
|
7
|
+
SET backup.file="${restore.from.path}"
|
8
|
+
SET server.database="${server.database}"
|
9
|
+
SET repository.path="${repository.path}"
|
10
|
+
SET version.file="_BuildInfo.xml"
|
11
|
+
SET version.xpath="//buildInfo/version"
|
12
|
+
SET environment="${environment}"
|
6
13
|
|
7
|
-
"%DIR%
|
14
|
+
"%DIR%rh\rh.exe" /d=%database.name% /f=%sql.files.directory% /s=%server.database% /vf=%version.file% /vx=%version.xpath% /r=%repository.path% /env=%environment% /simple
|
8
15
|
|
9
16
|
pause
|
@@ -0,0 +1,128 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" ?>
|
2
|
+
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
3
|
+
<xsl:output method="html"/>
|
4
|
+
<xsl:template match="/">
|
5
|
+
<xsl:text disable-output-escaping="yes"><![CDATA[<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">]]></xsl:text>
|
6
|
+
<html>
|
7
|
+
<head>
|
8
|
+
<title>
|
9
|
+
xUnit.net Test Results - <xsl:value-of select="@name"/>
|
10
|
+
</title>
|
11
|
+
<style type="text/css">
|
12
|
+
body { font-family: Calibri, Verdana, Arial, sans-serif; background-color: White; color: Black; }
|
13
|
+
h2,h3,h4,h5 { margin: 0; padding: 0; }
|
14
|
+
h3 { font-weight: normal; }
|
15
|
+
h5 { font-weight: normal; font-style: italic; margin-bottom: 0.75em; }
|
16
|
+
pre { font-family: Consolas; font-size: 85%; margin: 0 0 0 1em; padding: 0; }
|
17
|
+
.divided { border-top: solid 1px #f0f5fa; padding-top: 0.5em; }
|
18
|
+
.row, .altrow { padding: 0.1em 0.3em; }
|
19
|
+
.row { background-color: #f0f5fa; }
|
20
|
+
.altrow { background-color: #e1ebf4; }
|
21
|
+
.success, .failure, .skipped { font-family: Arial Unicode MS; font-weight: normal; float: left; width: 1em; display: block; }
|
22
|
+
.success { color: #0c0; }
|
23
|
+
.failure { color: #c00; }
|
24
|
+
.skipped { color: #cc0; }
|
25
|
+
.timing { float: right; }
|
26
|
+
.indent { margin: 0.25em 0 0.5em 2em; }
|
27
|
+
.clickable { cursor: pointer; }
|
28
|
+
.testcount { font-size: 85%; }
|
29
|
+
</style>
|
30
|
+
<script language="javascript">
|
31
|
+
function ToggleClass(id) {
|
32
|
+
var elem = document.getElementById(id);
|
33
|
+
if (elem.style.display == "none") {
|
34
|
+
elem.style.display = "block";
|
35
|
+
}
|
36
|
+
else {
|
37
|
+
elem.style.display = "none";
|
38
|
+
}
|
39
|
+
}
|
40
|
+
</script>
|
41
|
+
</head>
|
42
|
+
<body>
|
43
|
+
<xsl:apply-templates/>
|
44
|
+
</body>
|
45
|
+
</html>
|
46
|
+
</xsl:template>
|
47
|
+
|
48
|
+
<xsl:template match="assemblies">
|
49
|
+
<xsl:apply-templates/>
|
50
|
+
</xsl:template>
|
51
|
+
|
52
|
+
<xsl:template match="assembly">
|
53
|
+
<h3 class="divided"><b>Results for <xsl:value-of select="@name"/></b></h3>
|
54
|
+
<div>
|
55
|
+
Tests run: <a href="#all"><b><xsl:value-of select="@total"/></b></a>  
|
56
|
+
Failures: <a href="#failures"><b><xsl:value-of select="@failed"/></b></a>,
|
57
|
+
Skipped: <a href="#skipped"><b><xsl:value-of select="@skipped"/></b></a>,
|
58
|
+
Run time: <b><xsl:value-of select="@time"/>s</b>
|
59
|
+
</div>
|
60
|
+
<xsl:if test="class/test[@result='Fail']">
|
61
|
+
<br />
|
62
|
+
<h2><a name="failures"></a>Failed tests</h2>
|
63
|
+
<xsl:apply-templates select="class/test[@result='Fail']"><xsl:sort select="@name"/></xsl:apply-templates>
|
64
|
+
</xsl:if>
|
65
|
+
<xsl:if test="class/failure">
|
66
|
+
<br />
|
67
|
+
<h2><a name="failures"></a>Failed fixtures</h2>
|
68
|
+
<xsl:apply-templates select="class/failure"><xsl:sort select="../@name"/></xsl:apply-templates>
|
69
|
+
</xsl:if>
|
70
|
+
<xsl:if test="@skipped > 0">
|
71
|
+
<br />
|
72
|
+
<h2><a name="skipped"></a>Skipped tests</h2>
|
73
|
+
<xsl:apply-templates select="class/test[@result='Skip']"><xsl:sort select="@name"/></xsl:apply-templates>
|
74
|
+
</xsl:if>
|
75
|
+
<br />
|
76
|
+
<h2><a name="all"></a>All tests</h2>
|
77
|
+
<h5>Click test class name to expand/collapse test details</h5>
|
78
|
+
<xsl:apply-templates select="class"><xsl:sort select="@name"/></xsl:apply-templates>
|
79
|
+
<br /><h5>Results generated <xsl:value-of select="@run-date"/> at <xsl:value-of select="@run-time"/></h5>
|
80
|
+
</xsl:template>
|
81
|
+
|
82
|
+
<xsl:template match="test">
|
83
|
+
<div>
|
84
|
+
<xsl:attribute name="class"><xsl:if test="(position() mod 2 = 0)">alt</xsl:if>row</xsl:attribute>
|
85
|
+
<xsl:if test="@result!='Skip'"><span class="timing"><xsl:value-of select="@time"/>s</span></xsl:if>
|
86
|
+
<xsl:if test="@result='Skip'"><span class="timing">Skipped</span><span class="skipped">❢</span></xsl:if>
|
87
|
+
<xsl:if test="@result='Fail'"><span class="failure">✘</span></xsl:if>
|
88
|
+
<xsl:if test="@result='Pass'"><span class="success">✔</span></xsl:if>
|
89
|
+
 <xsl:value-of select="@name"/>
|
90
|
+
<xsl:if test="child::node()/message"> : <xsl:value-of select="child::node()/message"/></xsl:if>
|
91
|
+
<br clear="all" />
|
92
|
+
<xsl:if test="failure/stack-trace">
|
93
|
+
<pre><xsl:value-of select="failure/stack-trace"/></pre>
|
94
|
+
</xsl:if>
|
95
|
+
<xsl:if test="output">
|
96
|
+
<h4>Output</h4>
|
97
|
+
<pre><xsl:value-of select="output"/></pre>
|
98
|
+
</xsl:if>
|
99
|
+
</div>
|
100
|
+
</xsl:template>
|
101
|
+
|
102
|
+
<xsl:template match="failure">
|
103
|
+
<span class="failure">✘</span> <xsl:value-of select="../@name"/> : <xsl:value-of select="message"/><br clear="all"/>
|
104
|
+
Stack Trace:<br />
|
105
|
+
<pre><xsl:value-of select="stack-trace"/></pre>
|
106
|
+
</xsl:template>
|
107
|
+
|
108
|
+
<xsl:template match="class">
|
109
|
+
<h3>
|
110
|
+
<span class="timing"><xsl:value-of select="@time"/>s</span>
|
111
|
+
<span class="clickable">
|
112
|
+
<xsl:attribute name="onclick">ToggleClass('class<xsl:value-of select="position()"/>')</xsl:attribute>
|
113
|
+
<xsl:attribute name="ondblclick">ToggleClass('class<xsl:value-of select="position()"/>')</xsl:attribute>
|
114
|
+
<xsl:if test="@failed > 0"><span class="failure">✘</span></xsl:if>
|
115
|
+
<xsl:if test="@failed = 0"><span class="success">✔</span></xsl:if>
|
116
|
+
 <xsl:value-of select="@name"/>
|
117
|
+
 <span class="testcount">(<xsl:value-of select="@total"/> test<xsl:if test="@total > 1">s</xsl:if>)</span>
|
118
|
+
</span>
|
119
|
+
<br clear="all" />
|
120
|
+
</h3>
|
121
|
+
<div class="indent">
|
122
|
+
<xsl:if test="@failed = 0"><xsl:attribute name="style">display: none;</xsl:attribute></xsl:if>
|
123
|
+
<xsl:attribute name="id">class<xsl:value-of select="position()"/></xsl:attribute>
|
124
|
+
<xsl:apply-templates select="test"><xsl:sort select="@name"/></xsl:apply-templates>
|
125
|
+
</div>
|
126
|
+
</xsl:template>
|
127
|
+
|
128
|
+
</xsl:stylesheet>
|
@@ -0,0 +1,121 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" ?>
|
2
|
+
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
3
|
+
<xsl:output cdata-section-elements="message stack-trace"/>
|
4
|
+
|
5
|
+
<xsl:template match="/">
|
6
|
+
<xsl:apply-templates/>
|
7
|
+
</xsl:template>
|
8
|
+
|
9
|
+
<xsl:template match="assembly">
|
10
|
+
<test-results>
|
11
|
+
<xsl:attribute name="name">
|
12
|
+
<xsl:value-of select="@name"/>
|
13
|
+
</xsl:attribute>
|
14
|
+
<xsl:attribute name="date">
|
15
|
+
<xsl:value-of select="@run-date"/>
|
16
|
+
</xsl:attribute>
|
17
|
+
<xsl:attribute name="time">
|
18
|
+
<xsl:value-of select="@run-time"/>
|
19
|
+
</xsl:attribute>
|
20
|
+
<xsl:attribute name="total">
|
21
|
+
<xsl:value-of select="@total"/>
|
22
|
+
</xsl:attribute>
|
23
|
+
<xsl:attribute name="failures">
|
24
|
+
<xsl:value-of select="@failed"/>
|
25
|
+
</xsl:attribute>
|
26
|
+
<xsl:attribute name="not-run">
|
27
|
+
<xsl:value-of select="@skipped"/>
|
28
|
+
</xsl:attribute>
|
29
|
+
<test-suite>
|
30
|
+
<xsl:attribute name="name">
|
31
|
+
<xsl:value-of select="@name"/>
|
32
|
+
</xsl:attribute>
|
33
|
+
<xsl:attribute name="success">
|
34
|
+
<xsl:if test="@failed > 0">False</xsl:if>
|
35
|
+
<xsl:if test="@failed = 0">True</xsl:if>
|
36
|
+
</xsl:attribute>
|
37
|
+
<xsl:attribute name="time">
|
38
|
+
<xsl:value-of select="@time"/>
|
39
|
+
</xsl:attribute>
|
40
|
+
<results>
|
41
|
+
<xsl:apply-templates select="class"/>
|
42
|
+
</results>
|
43
|
+
</test-suite>
|
44
|
+
</test-results>
|
45
|
+
</xsl:template>
|
46
|
+
|
47
|
+
<xsl:template match="class">
|
48
|
+
<test-suite>
|
49
|
+
<xsl:attribute name="name">
|
50
|
+
<xsl:value-of select="@name"/>
|
51
|
+
</xsl:attribute>
|
52
|
+
<xsl:attribute name="success">
|
53
|
+
<xsl:if test="@failed > 0">False</xsl:if>
|
54
|
+
<xsl:if test="@failed = 0">True</xsl:if>
|
55
|
+
</xsl:attribute>
|
56
|
+
<xsl:attribute name="time">
|
57
|
+
<xsl:value-of select="@time"/>
|
58
|
+
</xsl:attribute>
|
59
|
+
<xsl:if test="failure">
|
60
|
+
<xsl:copy-of select="failure"/>
|
61
|
+
</xsl:if>
|
62
|
+
<xsl:if test="reason">
|
63
|
+
<reason>
|
64
|
+
<xsl:apply-templates select="reason"/>
|
65
|
+
</reason>
|
66
|
+
</xsl:if>
|
67
|
+
<results>
|
68
|
+
<xsl:apply-templates select="test"/>
|
69
|
+
</results>
|
70
|
+
</test-suite>
|
71
|
+
</xsl:template>
|
72
|
+
|
73
|
+
<xsl:template match="test">
|
74
|
+
<test-case>
|
75
|
+
<xsl:attribute name="name">
|
76
|
+
<xsl:value-of select="@name"/>
|
77
|
+
</xsl:attribute>
|
78
|
+
<xsl:attribute name="executed">
|
79
|
+
<xsl:if test="@result='Skip'">False</xsl:if>
|
80
|
+
<xsl:if test="@result!='Skip'">True</xsl:if>
|
81
|
+
</xsl:attribute>
|
82
|
+
<xsl:if test="@result!='Skip'">
|
83
|
+
<xsl:attribute name="success">
|
84
|
+
<xsl:if test="@result='Fail'">False</xsl:if>
|
85
|
+
<xsl:if test="@result='Pass'">True</xsl:if>
|
86
|
+
</xsl:attribute>
|
87
|
+
</xsl:if>
|
88
|
+
<xsl:if test="@time">
|
89
|
+
<xsl:attribute name="time">
|
90
|
+
<xsl:value-of select="@time"/>
|
91
|
+
</xsl:attribute>
|
92
|
+
</xsl:if>
|
93
|
+
<xsl:apply-templates select="traits"/>
|
94
|
+
<xsl:apply-templates select="failure"/>
|
95
|
+
</test-case>
|
96
|
+
</xsl:template>
|
97
|
+
|
98
|
+
<xsl:template match="traits">
|
99
|
+
<properties>
|
100
|
+
<xsl:apply-templates select="trait"/>
|
101
|
+
</properties>
|
102
|
+
</xsl:template>
|
103
|
+
|
104
|
+
<xsl:template match="trait">
|
105
|
+
<property>
|
106
|
+
<xsl:attribute name="name">
|
107
|
+
<xsl:value-of select="@name"/>
|
108
|
+
</xsl:attribute>
|
109
|
+
<xsl:attribute name="value">
|
110
|
+
<xsl:value-of select="@value"/>
|
111
|
+
</xsl:attribute>
|
112
|
+
</property>
|
113
|
+
</xsl:template>
|
114
|
+
|
115
|
+
<xsl:template match="failure">
|
116
|
+
<failure>
|
117
|
+
<xsl:copy-of select="node()"/>
|
118
|
+
</failure>
|
119
|
+
</xsl:template>
|
120
|
+
|
121
|
+
</xsl:stylesheet>
|
Binary file
|
@@ -0,0 +1,21 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8" ?>
|
2
|
+
<configuration>
|
3
|
+
|
4
|
+
<configSections>
|
5
|
+
<section name="xunit" type="Xunit.ConsoleClient.XunitConsoleConfigurationSection, xunit.console.clr4"/>
|
6
|
+
</configSections>
|
7
|
+
|
8
|
+
<xunit>
|
9
|
+
<transforms>
|
10
|
+
<add
|
11
|
+
commandline="html"
|
12
|
+
xslfile="HTML.xslt"
|
13
|
+
description="output results to HTML file"/>
|
14
|
+
<add
|
15
|
+
commandline="nunit"
|
16
|
+
xslfile="NUnitXml.xslt"
|
17
|
+
description="output results to NUnit-style XML file"/>
|
18
|
+
</transforms>
|
19
|
+
</xunit>
|
20
|
+
|
21
|
+
</configuration>
|
Binary file
|
@@ -0,0 +1,21 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8" ?>
|
2
|
+
<configuration>
|
3
|
+
|
4
|
+
<configSections>
|
5
|
+
<section name="xunit" type="Xunit.ConsoleClient.XunitConsoleConfigurationSection, xunit.console.clr4.x86"/>
|
6
|
+
</configSections>
|
7
|
+
|
8
|
+
<xunit>
|
9
|
+
<transforms>
|
10
|
+
<add
|
11
|
+
commandline="html"
|
12
|
+
xslfile="HTML.xslt"
|
13
|
+
description="output results to HTML file"/>
|
14
|
+
<add
|
15
|
+
commandline="nunit"
|
16
|
+
xslfile="NUnitXml.xslt"
|
17
|
+
description="output results to NUnit-style XML file"/>
|
18
|
+
</transforms>
|
19
|
+
</xunit>
|
20
|
+
|
21
|
+
</configuration>
|
Binary file
|
@@ -0,0 +1,21 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8" ?>
|
2
|
+
<configuration>
|
3
|
+
|
4
|
+
<configSections>
|
5
|
+
<section name="xunit" type="Xunit.ConsoleClient.XunitConsoleConfigurationSection, xunit.console"/>
|
6
|
+
</configSections>
|
7
|
+
|
8
|
+
<xunit>
|
9
|
+
<transforms>
|
10
|
+
<add
|
11
|
+
commandline="html"
|
12
|
+
xslfile="HTML.xslt"
|
13
|
+
description="output results to HTML file"/>
|
14
|
+
<add
|
15
|
+
commandline="nunit"
|
16
|
+
xslfile="NUnitXml.xslt"
|
17
|
+
description="output results to NUnit-style XML file"/>
|
18
|
+
</transforms>
|
19
|
+
</xunit>
|
20
|
+
|
21
|
+
</configuration>
|
Binary file
|
@@ -0,0 +1,21 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8" ?>
|
2
|
+
<configuration>
|
3
|
+
|
4
|
+
<configSections>
|
5
|
+
<section name="xunit" type="Xunit.ConsoleClient.XunitConsoleConfigurationSection, xunit.console.x86"/>
|
6
|
+
</configSections>
|
7
|
+
|
8
|
+
<xunit>
|
9
|
+
<transforms>
|
10
|
+
<add
|
11
|
+
commandline="html"
|
12
|
+
xslfile="HTML.xslt"
|
13
|
+
description="output results to HTML file"/>
|
14
|
+
<add
|
15
|
+
commandline="nunit"
|
16
|
+
xslfile="NUnitXml.xslt"
|
17
|
+
description="output results to NUnit-style XML file"/>
|
18
|
+
</transforms>
|
19
|
+
</xunit>
|
20
|
+
|
21
|
+
</configuration>
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -25,15 +25,15 @@
|
|
25
25
|
|
26
26
|
<!-- FRAMEWORKS -->
|
27
27
|
<!-- microsoft.framework: vb6, net-1.0, net-1.1, net-2.0, net-3.5, net-4.0, netcf-1.0, netcf-2.0, silverlight-2.0, mono-1.0, mono-2.0, mono-3.5, moonlight-2.0 (Enter multiple ones with a "," to take advantage of multitargeting) -->
|
28
|
-
<property name="microsoft.framework" value="net-
|
28
|
+
<property name="microsoft.framework" value="net-4.0" overwrite="false" />
|
29
29
|
<!-- language.short: vb,cs -->
|
30
30
|
<property name="language.short" value="cs" overwrite="false" />
|
31
|
-
<!-- test.framework: none, mbunit2, nunit, gallio - with gallio it must be installed in program files on every computer. Alternatively you can add 26MB to your repo and put it there. Little much for my tastes. -->
|
31
|
+
<!-- test.framework: none, mbunit2, nunit, xunit, gallio - with gallio it must be installed in program files on every computer. Alternatively you can add 26MB to your repo and put it there. Little much for my tastes. -->
|
32
32
|
<property name="test.framework" value="nunit" overwrite="false" />
|
33
33
|
<!-- source_control_type: svn, vss, tfs, vault, git, hg -->
|
34
|
-
<property name="source_control_type" value="
|
34
|
+
<property name="source_control_type" value="git" overwrite="false" />
|
35
35
|
|
36
|
-
<!-- Environment
|
36
|
+
<!-- Environment specific variables -->
|
37
37
|
<property name="path.separator" value="${string::trim(path::combine(' ', ' '))}" />
|
38
38
|
|
39
39
|
<!-- ASSEMBLY VARIABLES -->
|
@@ -70,11 +70,13 @@
|
|
70
70
|
<!-- In example, if from the top level directory, you have an item that is in lib\NCover\NCover.Console.exe you should add it here as ..\..\lib\NCover\NCover.Console.exe -->
|
71
71
|
<!-- To not use the tool, change to a location that doesn't exist -->
|
72
72
|
<property name="app.nunit.console" value="..${path.separator}..${path.separator}${folder.references}${path.separator}NUnit${path.separator}nunit-console.exe" overwrite="false" />
|
73
|
+
<property name="app.xunit.console" value="..${path.separator}..${path.separator}${folder.references}${path.separator}xUnit${path.separator}xunit.console.clr4.exe" overwrite="false" />
|
73
74
|
<property name="app.storevil.console" value="..${path.separator}..${path.separator}${folder.references}${path.separator}StorEvil${path.separator}StorEvil.exe" overwrite="false" />
|
74
75
|
<property name="app.ncover" value="..${path.separator}..${path.separator}${folder.references}${path.separator}NCover${path.separator}NCover.Console.exe" overwrite="false" />
|
75
76
|
<property name="app.ncover_explorer" value="..${path.separator}..${path.separator}${folder.references}${path.separator}NCover${path.separator}NCoverExplorer.Console.exe" overwrite="false" />
|
76
77
|
<property name="app.ncover.tester" value="..${path.separator}..${path.separator}${folder.references}${path.separator}MbUnit2${path.separator}MbUnit.Cons.exe" overwrite="false" if="${test.framework=='mbunit2'}" />
|
77
78
|
<property name="app.ncover.tester" value="${app.nunit.console}" overwrite="false" if="${test.framework=='nunit'}" />
|
79
|
+
<property name="app.ncover.tester" value="${app.xunit.console}" overwrite="false" if="${test.framework=='xunit'}" />
|
78
80
|
<property name="app.ncover.tester" value="C:\Program Files (x86)\Gallio\bin\Gallio.Host.exe" overwrite="false" if="${test.framework=='gallio'}" />
|
79
81
|
<property name="app.ndepend" value="C:\Program Files\NDepend\NDepend.Console.exe" overwrite="false" />
|
80
82
|
<property name="app.moma" value="..\..\${folder.references}\MoMA\MoMA.exe" overwrite="false" />
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: uppercutbuild
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 71
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 1
|
8
|
-
-
|
8
|
+
- 3
|
9
9
|
- 0
|
10
10
|
- 0
|
11
|
-
version: 1.
|
11
|
+
version: 1.3.0.0
|
12
12
|
platform: ruby
|
13
13
|
authors:
|
14
14
|
- Rob "FerventCoder" Reynolds
|
@@ -17,7 +17,7 @@ autorequire:
|
|
17
17
|
bindir: bin
|
18
18
|
cert_chain: []
|
19
19
|
|
20
|
-
date: 2011-
|
20
|
+
date: 2011-03-10 00:00:00 -06:00
|
21
21
|
default_executable:
|
22
22
|
dependencies:
|
23
23
|
- !ruby/object:Gem::Dependency
|
@@ -61,6 +61,7 @@ files:
|
|
61
61
|
- lib/build/analyzers/nunit.test.step
|
62
62
|
- lib/build/analyzers/storevil.test.step
|
63
63
|
- lib/build/analyzers/test.step
|
64
|
+
- lib/build/analyzers/xunit.test.step
|
64
65
|
- lib/build/Castle.Core.dll
|
65
66
|
- lib/build/Castle.DynamicProxy2.dll
|
66
67
|
- lib/build/Castle.MicroKernel.dll
|
@@ -339,6 +340,21 @@ files:
|
|
339
340
|
- lib/lib/NUnit/tests/test-assembly.dll
|
340
341
|
- lib/lib/NUnit/tests/test-utilities.dll
|
341
342
|
- lib/lib/NUnit/tests/timing-tests.dll
|
343
|
+
- lib/lib/xUnit/HTML.xslt
|
344
|
+
- lib/lib/xUnit/NUnitXml.xslt
|
345
|
+
- lib/lib/xUnit/xunit.console.clr4.exe
|
346
|
+
- lib/lib/xUnit/xunit.console.clr4.exe.config
|
347
|
+
- lib/lib/xUnit/xunit.console.clr4.x86.exe
|
348
|
+
- lib/lib/xUnit/xunit.console.clr4.x86.exe.config
|
349
|
+
- lib/lib/xUnit/xunit.console.exe
|
350
|
+
- lib/lib/xUnit/xunit.console.exe.config
|
351
|
+
- lib/lib/xUnit/xunit.console.x86.exe
|
352
|
+
- lib/lib/xUnit/xunit.console.x86.exe.config
|
353
|
+
- lib/lib/xUnit/xunit.dll
|
354
|
+
- lib/lib/xUnit/xunit.extensions.dll
|
355
|
+
- lib/lib/xUnit/xunit.runner.msbuild.dll
|
356
|
+
- lib/lib/xUnit/xunit.runner.tdnet.dll
|
357
|
+
- lib/lib/xUnit/xunit.runner.utility.dll
|
342
358
|
- lib/NDepend.xml
|
343
359
|
- lib/nuget/__NAME__.nuspec
|
344
360
|
- lib/open.bat
|