uppercutbuild 0.9.0.346.20100805 → 1.0.0.0.20100806
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 +7 -2
- data/lib/build.sh +23 -0
- data/lib/build/UppercuT.xml +1 -1
- data/lib/build/analyze.step +78 -77
- data/lib/build/analyzers/gallio.test.step +25 -26
- data/lib/build/analyzers/mbunit2.test.step +25 -28
- data/lib/build/analyzers/moma.step +29 -31
- data/lib/build/analyzers/ncover.step +32 -34
- data/lib/build/analyzers/ndepend.step +19 -12
- data/lib/build/analyzers/nitriq.step +19 -22
- data/lib/build/analyzers/nunit.test.step +37 -37
- data/lib/build/analyzers/test.step +99 -98
- data/lib/build/compile.step +68 -50
- data/lib/build/customize.build +76 -75
- data/lib/build/customizers/item.template +50 -49
- data/lib/build/default.build +171 -167
- data/lib/build/deploymentBuilder.step +103 -102
- data/lib/build/environmentBuilder.step +119 -118
- data/lib/build/gemsBuild.step +113 -112
- data/lib/build/gemsPrepare.step +157 -156
- data/lib/build/generateBuildInfo.step +108 -105
- data/lib/build/ilmerge.build +183 -182
- data/lib/build/open.build +115 -102
- data/lib/build/package.step +234 -233
- data/lib/build/policyChecks.step +81 -80
- data/lib/build/updateAssemblies.build +107 -106
- data/lib/build/uppercut.dll +0 -0
- data/lib/build/uppercut.tasks.dll +0 -0
- data/lib/build/versionBuilder.step +149 -147
- data/lib/build/versioners/git.step +106 -105
- data/lib/build/versioners/hg.step +106 -105
- data/lib/build/versioners/svn.step +112 -111
- data/lib/build/versioners/tfs.step +104 -103
- data/lib/build/zip.build +134 -162
- data/lib/deployment/scripts/database.deploy +37 -36
- data/lib/open.sh +7 -0
- data/lib/settings/UppercuT.config +76 -73
- data/lib/zip.sh +9 -0
- metadata +9 -6
@@ -4,41 +4,43 @@
|
|
4
4
|
<!-- DO NOT EDIT THIS FILE - NCover uses MbUnit to run tests - find out more at http://uppercut.pbwiki.com -->
|
5
5
|
<property name="build.config.settings" value="__NONE__" overwrite="false" />
|
6
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" />
|
7
9
|
<property name="file.current.no_extension" value="ncover" />
|
8
10
|
<property name="dirs.current" value="${directory::get-parent-directory(project::get-buildfile-path())}" />
|
9
|
-
<property name="path.to.toplevel" value="
|
11
|
+
<property name="path.to.toplevel" value="..${path.separator}.." />
|
10
12
|
<property name="folder.build_scripts" value="build" overwrite="false" />
|
11
13
|
<property name="folder.build_scripts_custom" value="build.custom" overwrite="false" />
|
12
|
-
<property name="dirs.build_scripts_custom" value="${dirs.current}
|
14
|
+
<property name="dirs.build_scripts_custom" value="${dirs.current}${path.separator}${path.to.toplevel}${path.separator}${folder.build_scripts_custom}${path.separator}analyzers" />
|
13
15
|
<property name="folder.code_build" value="build_output" overwrite="false" />
|
14
|
-
<property name="dirs.build" value="${dirs.current}
|
16
|
+
<property name="dirs.build" value="${dirs.current}${path.separator}${path.to.toplevel}${path.separator}${folder.code_build}" />
|
15
17
|
<property name="folder.app.drop" value="${project.name}" overwrite="false" />
|
16
|
-
<property name="dirs.build.code" value="${dirs.build}
|
18
|
+
<property name="dirs.build.code" value="${dirs.build}${path.separator}${folder.app.drop}" overwrite="false" />
|
17
19
|
<property name="folder.build_artifacts" value="build_artifacts" overwrite="false" />
|
18
|
-
<property name="dirs.build_artifacts" value="${path::get-full-path(dirs.build)}
|
20
|
+
<property name="dirs.build_artifacts" value="${path::get-full-path(dirs.build)}${path.separator}${folder.build_artifacts}" />
|
19
21
|
<property name="project.name" value="__SOLUTION_NAME_WITHOUT_SLN_EXTENSION__" overwrite="false" />
|
20
22
|
<property name="test.framework" value="mbunit" overwrite="false" />
|
21
23
|
<property name="microsoft.framework" value="net-3.5" overwrite="false" />
|
22
24
|
<property name="number.satisfactory_coverage" value="85" overwrite="false" />
|
23
25
|
<property name="fail.if_ncover_fails" value="false" overwrite="false" />
|
24
26
|
<property name="folder.references" value="lib" overwrite="false" />
|
25
|
-
<property name="dirs.lib" value="${dirs.current}
|
26
|
-
<property name="dirs.ncover_results" value="${path::get-full-path(dirs.build_artifacts)}
|
27
|
-
<property name="app.ncover.tester" value="${path::get-full-path(dirs.lib)}
|
28
|
-
<property name="app.ncover" value="${path::get-full-path(dirs.lib)}
|
29
|
-
<property name="app.ncover.explorer" value="${path::get-full-path(dirs.lib)}
|
30
|
-
<property name="file.ncover_results" value="${dirs.ncover_results}
|
31
|
-
<property name="file.ncover_log" value="${dirs.ncover_results}
|
27
|
+
<property name="dirs.lib" value="${dirs.current}${path.separator}${path.to.toplevel}${path.separator}${folder.references}" overwrite="false" />
|
28
|
+
<property name="dirs.ncover_results" value="${path::get-full-path(dirs.build_artifacts)}${path.separator}ncover" />
|
29
|
+
<property name="app.ncover.tester" value="${path::get-full-path(dirs.lib)}${path.separator}MbUnit2${path.separator}MbUnit.Cons.exe" overwrite="false" />
|
30
|
+
<property name="app.ncover" value="${path::get-full-path(dirs.lib)}${path.separator}NCover${path.separator}NCover.Console.exe" overwrite="false" />
|
31
|
+
<property name="app.ncover.explorer" value="${path::get-full-path(dirs.lib)}${path.separator}NCover${path.separator}NCoverExplorer.Console.exe" overwrite="false" />
|
32
|
+
<property name="file.ncover_results" value="${dirs.ncover_results}${path.separator}${project.name}.ncover.xml" />
|
33
|
+
<property name="file.ncover_log" value="${dirs.ncover_results}${path.separator}${project.name}.ncover.log" />
|
32
34
|
<property name="file.xml.code_coverage_results" value="${project.name}.CodeCoverageSummary-results.xml" />
|
33
35
|
<property name="file.html.code_coverage_results" value="${project.name}.CodeCoverageSummary-results.html" />
|
34
36
|
<property name="tests.excluded_categories.comma_separated" value="Database,Integration,Slow,NotWorking" overwrite="false" />
|
35
37
|
<property name="test.args" value="" />
|
36
38
|
<property name="test.args" value="/rt:Text /rnf:mbUnit /rf:"${dirs.ncover_results}" /ec:${tests.excluded_categories.comma_separated}" if="${test.framework=='mbunit2'}" />
|
37
|
-
<property name="test.args" value="/xml:"${dirs.ncover_results}
|
39
|
+
<property name="test.args" value="/xml:"${dirs.ncover_results}${path.separator}nunit-results.xml" /nologo /framework=${microsoft.framework} /exclude:${tests.excluded_categories.comma_separated}" if="${test.framework=='nunit'}" />
|
38
40
|
<!--property name="test.args" value="/xml:"${dirs.ncover_results}\nunit-results.xml" /nologo /framework=${microsoft.framework} /exclude:${tests.excluded_categories.comma_separated}" if="${test.framework=='nunit'}" /-->
|
39
|
-
<property name="file.custom.step.before" value="${dirs.build_scripts_custom}
|
40
|
-
<property name="file.custom.step.after" value="${dirs.build_scripts_custom}
|
41
|
-
<property name="file.custom.step.replace" value="${dirs.build_scripts_custom}
|
41
|
+
<property name="file.custom.step.before" value="${dirs.build_scripts_custom}${path.separator}${file.current.no_extension}.pre.step" />
|
42
|
+
<property name="file.custom.step.after" value="${dirs.build_scripts_custom}${path.separator}${file.current.no_extension}.post.step" />
|
43
|
+
<property name="file.custom.step.replace" value="${dirs.build_scripts_custom}${path.separator}${file.current.no_extension}.replace.step" />
|
42
44
|
<property name="is.replaced" value="false" />
|
43
45
|
<property name="fail.build.on.error" value="false" />
|
44
46
|
|
@@ -95,16 +97,16 @@
|
|
95
97
|
<foreach item="File" property="dll.filename">
|
96
98
|
<in>
|
97
99
|
<items>
|
98
|
-
<exclude name="${dirs.build.code}
|
99
|
-
<exclude name="${dirs.build.code}
|
100
|
-
<exclude name="${dirs.build.code}
|
101
|
-
<exclude name="${dirs.build.code}
|
102
|
-
<include name="${dirs.build.code}
|
103
|
-
<include name="${dirs.build.code}
|
100
|
+
<exclude name="${dirs.build.code}${path.separator}lib${path.separator}**" />
|
101
|
+
<exclude name="${dirs.build.code}${path.separator}**${path.separator}*Database*dll" />
|
102
|
+
<exclude name="${dirs.build.code}${path.separator}**${path.separator}*.Integration*dll" />
|
103
|
+
<exclude name="${dirs.build.code}${path.separator}**${path.separator}TestFu.dll" />
|
104
|
+
<include name="${dirs.build.code}${path.separator}**${path.separator}*Test*dll" />
|
105
|
+
<include name="${dirs.build.code}${path.separator}**${path.separator}*Spec*dll" />
|
104
106
|
</items>
|
105
107
|
</in>
|
106
108
|
<do>
|
107
|
-
<property name="dll.names" value="${dll.names + ' ' + string::replace(dll.filename,path::get-full-path(dirs.build.code) + '\','') + ''}" />
|
109
|
+
<property name="dll.names" value="${dll.names + ' ' + string::replace(string::replace(dll.filename,path::get-full-path(dirs.build.code) + '\',''),'\',path.separator) + ''}" />
|
108
110
|
</do>
|
109
111
|
</foreach>
|
110
112
|
|
@@ -127,10 +129,11 @@
|
|
127
129
|
failonerror="false"
|
128
130
|
verbose="true">
|
129
131
|
<assemblies basedir="${dirs.build.code}">
|
130
|
-
<exclude name="${dirs.build.code}
|
131
|
-
<exclude name="${dirs.build.code}
|
132
|
-
<exclude name="${dirs.build.code}
|
133
|
-
<
|
132
|
+
<exclude name="${dirs.build.code}${path.separator}lib${path.separator}**" />
|
133
|
+
<exclude name="${dirs.build.code}${path.separator}**${path.separator}TestFu.dll" />
|
134
|
+
<exclude name="${dirs.build.code}${path.separator}**${path.separator}*Test*dll" />
|
135
|
+
<exclude name="${dirs.build.code}${path.separator}**${path.separator}*Spec*dll" />
|
136
|
+
<include name="${dirs.build.code}${path.separator}**${path.separator}${project.name}*.dll" />
|
134
137
|
</assemblies>
|
135
138
|
</ncover>
|
136
139
|
</target>
|
@@ -165,13 +168,8 @@
|
|
165
168
|
</target>
|
166
169
|
|
167
170
|
<target name="open_results">
|
168
|
-
<echo message="Opening results
|
169
|
-
<
|
170
|
-
spawn="true"
|
171
|
-
program="${environment::get-folder-path('ProgramFiles')}\Internet Explorer\iexplore.exe"
|
172
|
-
commandline="${path::get-full-path(dirs.ncover_results)}\${file.html.code_coverage_results}"
|
173
|
-
>
|
174
|
-
</exec>
|
171
|
+
<echo message="Opening results - ${path::get-full-path(dirs.ncover_results) + path.separator + file.html.code_coverage_results}" />
|
172
|
+
<results display="${path::get-full-path(dirs.ncover_results) + path.separator + file.html.code_coverage_results}" />
|
175
173
|
</target>
|
176
174
|
|
177
175
|
<target name="custom_tasks_after">
|
@@ -4,24 +4,26 @@
|
|
4
4
|
<!-- DO NOT EDIT THIS FILE - Add custom tasks in BuildTasks.Custom\Analyzers folder with file by the same name - find out more at http://uppercut.pbwiki.com -->
|
5
5
|
<property name="build.config.settings" value="__NONE__" overwrite="false" />
|
6
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" />
|
7
9
|
<property name="file.current.no_extension" value="ndepend" />
|
8
10
|
<property name="dirs.current" value="${directory::get-parent-directory(project::get-buildfile-path())}" />
|
9
|
-
<property name="path.to.toplevel" value="
|
11
|
+
<property name="path.to.toplevel" value="..${path.separator}.." />
|
10
12
|
<property name="folder.build_scripts" value="build" overwrite="false" />
|
11
13
|
<property name="folder.build_scripts_custom" value="build.custom" overwrite="false" />
|
12
|
-
<property name="dirs.build_scripts_custom" value="${dirs.current}
|
14
|
+
<property name="dirs.build_scripts_custom" value="${dirs.current}${path.separator}${path.to.toplevel}${path.separator}${folder.build_scripts_custom}${path.separator}analyzers" />
|
13
15
|
<property name="folder.code_build" value="build_output" overwrite="false" />
|
14
|
-
<property name="dirs.build" value="${dirs.current}
|
16
|
+
<property name="dirs.build" value="${dirs.current}${path.separator}${path.to.toplevel}${path.separator}${folder.code_build}" />
|
15
17
|
<property name="folder.app.drop" value="${project.name}" overwrite="false" />
|
16
|
-
<property name="dirs.build.code" value="${dirs.build}
|
18
|
+
<property name="dirs.build.code" value="${dirs.build}${path.separator}${folder.app.drop}" overwrite="false" />
|
17
19
|
<property name="folder.build_artifacts" value="build_artifacts" overwrite="false" />
|
18
|
-
<property name="dirs.build_artifacts" value="${path::get-full-path(dirs.build)}
|
19
|
-
<property name="app.ndepend" value="C
|
20
|
-
<property name="dirs.ndepend_results" value="${dirs.build_artifacts}
|
21
|
-
<property name="files.ndepend_config" value="${path::get-full-path(dirs.current)}
|
22
|
-
<property name="file.custom.step.before" value="${dirs.build_scripts_custom}
|
23
|
-
<property name="file.custom.step.after" value="${dirs.build_scripts_custom}
|
24
|
-
<property name="file.custom.step.replace" value="${dirs.build_scripts_custom}
|
20
|
+
<property name="dirs.build_artifacts" value="${path::get-full-path(dirs.build)}${path.separator}${folder.build_artifacts}" />
|
21
|
+
<property name="app.ndepend" value="C:${path.separator}Program Files${path.separator}NDepend${path.separator}NDepend.Console.exe" overwrite="false" />
|
22
|
+
<property name="dirs.ndepend_results" value="${dirs.build_artifacts}${path.separator}ndepend" />
|
23
|
+
<property name="files.ndepend_config" value="${path::get-full-path(dirs.current)}${path.separator}${path.to.toplevel}${path.separator}NDepend.xml" />
|
24
|
+
<property name="file.custom.step.before" value="${dirs.build_scripts_custom}${path.separator}${file.current.no_extension}.pre.step" />
|
25
|
+
<property name="file.custom.step.after" value="${dirs.build_scripts_custom}${path.separator}${file.current.no_extension}.post.step" />
|
26
|
+
<property name="file.custom.step.replace" value="${dirs.build_scripts_custom}${path.separator}${file.current.no_extension}.replace.step" />
|
25
27
|
<property name="is.replaced" value="false" />
|
26
28
|
<property name="fail.build.on.error" value="false" />
|
27
29
|
|
@@ -76,11 +78,16 @@
|
|
76
78
|
<echo message="Attempting to run NDepend at ${app.ndepend} for file ${files.ndepend_config}." />
|
77
79
|
|
78
80
|
<exec program="${app.ndepend}">
|
79
|
-
<arg line="${files.ndepend_config} /OutDir ${dirs.ndepend_results} /InDirs ${path::get-full-path(dirs.build.code)} C
|
81
|
+
<arg line="${files.ndepend_config} /OutDir ${dirs.ndepend_results} /InDirs ${path::get-full-path(dirs.build.code)} C:${path.separator}WINDOWS${path.separator}Microsoft.NET${path.separator}Framework${path.separator}v2.0.50727 C:${path.separator}WINDOWS${path.separator}Microsoft.NET${path.separator}Framework${path.separator}v3.0 C:${path.separator}WINDOWS${path.separator}Microsoft.NET${path.separator}Framework${path.separator}v3.5" />
|
80
82
|
<!-- /EmitVisualNDependBinXml -->
|
81
83
|
</exec>
|
82
84
|
</target>
|
83
85
|
|
86
|
+
<target name="open_results">
|
87
|
+
<echo message="Opening results - ${path::get-full-path(dirs.ndepend_results) + path.separator + 'NDependReport.html'}" />
|
88
|
+
<results display="${path::get-full-path(dirs.ndepend_results) + path.separator + 'NDependReport.html'}" />
|
89
|
+
</target>
|
90
|
+
|
84
91
|
<target name="custom_tasks_after">
|
85
92
|
<echo message="Running custom tasks if ${file.custom.step.after} exists." />
|
86
93
|
<nant buildfile="${file.custom.step.after}" inheritall="true" if="${file::exists(file.custom.step.after)}" failonerror="${fail.build.on.error}" />
|
@@ -4,29 +4,31 @@
|
|
4
4
|
<!-- DO NOT EDIT THIS FILE - Add custom tasks in BuildTasks.Custom\Analyzers folder with file by the same name - find out more at http://uppercut.pbwiki.com -->
|
5
5
|
<property name="build.config.settings" value="__NONE__" overwrite="false" />
|
6
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" />
|
7
9
|
<property name="file.current.no_extension" value="nitriq" />
|
8
10
|
<property name="dirs.current" value="${directory::get-parent-directory(project::get-buildfile-path())}" />
|
9
|
-
<property name="path.to.toplevel" value="
|
11
|
+
<property name="path.to.toplevel" value="..${path.separator}.." />
|
10
12
|
<property name="project.name" value="__SOLUTION_NAME_WITHOUT_SLN_EXTENSION__" overwrite="false" />
|
11
13
|
<property name="folder.build_scripts" value="build" overwrite="false" />
|
12
14
|
<property name="folder.build_scripts_custom" value="build.custom" overwrite="false" />
|
13
|
-
<property name="dirs.build_scripts_custom" value="${dirs.current}
|
15
|
+
<property name="dirs.build_scripts_custom" value="${dirs.current}${path.separator}${path.to.toplevel}${path.separator}${folder.build_scripts_custom}${path.separator}analyzers" />
|
14
16
|
<property name="folder.code_build" value="build_output" overwrite="false" />
|
15
|
-
<property name="dirs.build" value="${dirs.current}
|
17
|
+
<property name="dirs.build" value="${dirs.current}${path.separator}${path.to.toplevel}${path.separator}${folder.code_build}" />
|
16
18
|
<property name="folder.app.drop" value="${project.name}" overwrite="false" />
|
17
|
-
<property name="dirs.build.code" value="${dirs.build}
|
19
|
+
<property name="dirs.build.code" value="${dirs.build}${path.separator}${folder.app.drop}" overwrite="false" />
|
18
20
|
<property name="folder.build_artifacts" value="build_artifacts" overwrite="false" />
|
19
|
-
<property name="dirs.build_artifacts" value="${path::get-full-path(dirs.build)}
|
21
|
+
<property name="dirs.build_artifacts" value="${path::get-full-path(dirs.build)}${path.separator}${folder.build_artifacts}" />
|
20
22
|
|
21
|
-
<property name="app.nitriq" value="C
|
22
|
-
<property name="dirs.nitriq_results" value="${dirs.build_artifacts}
|
23
|
-
<property name="files.nitriq_project" value="${path::get-full-path(dirs.current)}
|
24
|
-
<property name="files.nitriq_queries" value="${path::get-full-path(dirs.current)}
|
25
|
-
<property name="file.html.nitriq_results" value="${dirs.nitriq_results}
|
23
|
+
<property name="app.nitriq" value="C:${path.separator}Program Files (x86)${path.separator}NimblePros${path.separator}Nitriq Console + Pro${path.separator}Nitriq.Console.exe" overwrite="false" />
|
24
|
+
<property name="dirs.nitriq_results" value="${dirs.build_artifacts}${path.separator}nitriq" />
|
25
|
+
<property name="files.nitriq_project" value="${path::get-full-path(dirs.current)}${path.separator}${path.to.toplevel}${path.separator}nitriq.nitriqProj" />
|
26
|
+
<property name="files.nitriq_queries" value="${path::get-full-path(dirs.current)}${path.separator}${path.to.toplevel}${path.separator}nitriq.nq" />
|
27
|
+
<property name="file.html.nitriq_results" value="${dirs.nitriq_results}${path.separator}${project.name}.nitriq-results.html" />
|
26
28
|
|
27
|
-
<property name="file.custom.step.before" value="${dirs.build_scripts_custom}
|
28
|
-
<property name="file.custom.step.after" value="${dirs.build_scripts_custom}
|
29
|
-
<property name="file.custom.step.replace" value="${dirs.build_scripts_custom}
|
29
|
+
<property name="file.custom.step.before" value="${dirs.build_scripts_custom}${path.separator}${file.current.no_extension}.pre.step" />
|
30
|
+
<property name="file.custom.step.after" value="${dirs.build_scripts_custom}${path.separator}${file.current.no_extension}.post.step" />
|
31
|
+
<property name="file.custom.step.replace" value="${dirs.build_scripts_custom}${path.separator}${file.current.no_extension}.replace.step" />
|
30
32
|
<property name="is.replaced" value="false" />
|
31
33
|
<property name="fail.build.on.error" value="false" />
|
32
34
|
|
@@ -34,8 +36,8 @@
|
|
34
36
|
|
35
37
|
<target name="precheck">
|
36
38
|
<echo message="Attempting to locate console edition of Nitriq." />
|
37
|
-
<property name="app.nitriq" value="C
|
38
|
-
<property name="app.nitriq" value="C
|
39
|
+
<property name="app.nitriq" value="C:${path.separator}Program Files (x86)${path.separator}NimblePros${path.separator}Nitriq Console + Pro\Nitriq.Console.exe" if="${not file::exists(app.nitriq)}" />
|
40
|
+
<property name="app.nitriq" value="C:${path.separator}Program Files${path.separator}NimblePros\Nitriq Console + Pro - Nitriq.Console.exe" if="${not file::exists(app.nitriq)}" />
|
39
41
|
<call target="run_tasks" if="${file::exists(app.nitriq) and file::exists(files.nitriq_project)}" />
|
40
42
|
</target>
|
41
43
|
|
@@ -93,13 +95,8 @@
|
|
93
95
|
</target>
|
94
96
|
|
95
97
|
<target name="open_results">
|
96
|
-
<echo message="Opening results
|
97
|
-
<
|
98
|
-
spawn="true"
|
99
|
-
program="${environment::get-folder-path('ProgramFiles')}\Internet Explorer\iexplore.exe"
|
100
|
-
commandline="${file.html.nitriq_results}"
|
101
|
-
>
|
102
|
-
</exec>
|
98
|
+
<echo message="Opening results - ${path::get-full-path(dirs.nitriq_results) + path.separator + file.html.nitriq_results}" />
|
99
|
+
<results display="${path::get-full-path(dirs.nitriq_results) + path.separator + file.html.nitriq_results}" />
|
103
100
|
</target>
|
104
101
|
|
105
102
|
<target name="custom_tasks_after">
|
@@ -4,34 +4,41 @@
|
|
4
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
5
|
<property name="build.config.settings" value="__NONE__" overwrite="false" />
|
6
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" />
|
7
9
|
<property name="file.current.no_extension" value="nunit.test" />
|
8
10
|
<property name="dirs.current" value="${directory::get-parent-directory(project::get-buildfile-path())}" />
|
9
|
-
<property name="path.to.toplevel" value="
|
11
|
+
<property name="path.to.toplevel" value="..${path.separator}.." />
|
10
12
|
<property name="folder.build_scripts" value="build" overwrite="false" />
|
11
13
|
<property name="folder.build_scripts_custom" value="build.custom" overwrite="false" />
|
12
|
-
<property name="dirs.build_scripts_custom" value="${dirs.current}
|
14
|
+
<property name="dirs.build_scripts_custom" value="${dirs.current}${path.separator}${path.to.toplevel}${path.separator}${folder.build_scripts_custom}${path.separator}analyzers" />
|
13
15
|
<property name="folder.code_build" value="build_output" overwrite="false" />
|
14
|
-
<property name="dirs.build" value="${dirs.current}
|
16
|
+
<property name="dirs.build" value="${dirs.current}${path.separator}${path.to.toplevel}${path.separator}${folder.code_build}" />
|
15
17
|
<property name="folder.app.drop" value="${project.name}" overwrite="false" />
|
16
|
-
<property name="dirs.build.code" value="${dirs.build}
|
18
|
+
<property name="dirs.build.code" value="${dirs.build}${path.separator}${folder.app.drop}" overwrite="false" />
|
17
19
|
<property name="folder.references" value="lib" overwrite="false" />
|
18
|
-
<property name="dirs.lib" value="${dirs.current}
|
20
|
+
<property name="dirs.lib" value="${dirs.current}${path.separator}${path.to.toplevel}${path.separator}${folder.references}" overwrite="false" />
|
19
21
|
<property name="microsoft.framework" value="net-3.5" overwrite="false" />
|
20
22
|
<property name="folder.build_artifacts" value="build_artifacts" overwrite="false" />
|
21
|
-
<property name="dirs.build_artifacts" value="${path::get-full-path(dirs.build)}
|
22
|
-
<property name="dirs.test_results" value="${dirs.build_artifacts}
|
23
|
+
<property name="dirs.build_artifacts" value="${path::get-full-path(dirs.build)}${path.separator}${folder.build_artifacts}" />
|
24
|
+
<property name="dirs.test_results" value="${dirs.build_artifacts}${path.separator}nunit" overwrite="false" />
|
23
25
|
<property name="file.test_results" value="index" overwrite="false" />
|
24
26
|
<property name="tests.excluded_categories.comma_separated" value="Database,Integration,Slow,NotWorking,Ignore,database,integration,slow,notworking,ignore" overwrite="false" />
|
25
|
-
<property name="
|
26
|
-
|
27
|
-
<property name="test.args.
|
28
|
-
<property name="
|
27
|
+
<property name="nunit.separator" value="--" if="${platform::is-unix()}" />
|
28
|
+
<property name="nunit.separator" value="/" if="${platform::is-windows()}" />
|
29
|
+
<property name="test.args.framework" value="" if="${platform::is-unix()}" />
|
30
|
+
<property name="test.args.framework" value="${nunit.separator}framework=${microsoft.framework}" if="${platform::is-windows()}" />
|
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
|
+
<property name="test.args.exclude" value="${nunit.separator}exclude="${tests.excluded_categories.comma_separated}"" />
|
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
|
+
<property name="app.nunit.console" value="nunit-console" overwrite="false" if="${platform::is-unix()}"/>
|
29
36
|
<property name="dlls.test" value="" />
|
30
37
|
<property name="tests.ran" value="false" />
|
31
38
|
|
32
|
-
<property name="file.custom.step.before" value="${dirs.build_scripts_custom}
|
33
|
-
<property name="file.custom.step.after" value="${dirs.build_scripts_custom}
|
34
|
-
<property name="file.custom.step.replace" value="${dirs.build_scripts_custom}
|
39
|
+
<property name="file.custom.step.before" value="${dirs.build_scripts_custom}${path.separator}${file.current.no_extension}.pre.step" />
|
40
|
+
<property name="file.custom.step.after" value="${dirs.build_scripts_custom}${path.separator}${file.current.no_extension}.post.step" />
|
41
|
+
<property name="file.custom.step.replace" value="${dirs.build_scripts_custom}${path.separator}${file.current.no_extension}.replace.step" />
|
35
42
|
<property name="is.replaced" value="false" />
|
36
43
|
<property name="fail.build.on.error" value="true" />
|
37
44
|
|
@@ -93,16 +100,16 @@
|
|
93
100
|
<foreach item="File" property="dll.filename">
|
94
101
|
<in>
|
95
102
|
<items>
|
96
|
-
<exclude name="${dirs.build.code}
|
97
|
-
<exclude name="${dirs.build.code}
|
98
|
-
<exclude name="${dirs.build.code}
|
99
|
-
<exclude name="${dirs.build.code}
|
100
|
-
<include name="${dirs.build.code}
|
101
|
-
<include name="${dirs.build.code}
|
103
|
+
<exclude name="${dirs.build.code}${path.separator}lib${path.separator}**" />
|
104
|
+
<exclude name="${dirs.build.code}${path.separator}**${path.separator}*Database*dll" />
|
105
|
+
<exclude name="${dirs.build.code}${path.separator}**${path.separator}*.Integration*dll" />
|
106
|
+
<exclude name="${dirs.build.code}${path.separator}**${path.separator}TestFu.dll" />
|
107
|
+
<include name="${dirs.build.code}${path.separator}**${path.separator}*Test*dll" />
|
108
|
+
<include name="${dirs.build.code}${path.separator}**${path.separator}*Spec*dll" />
|
102
109
|
</items>
|
103
110
|
</in>
|
104
111
|
<do>
|
105
|
-
<property name="dll.names" value="${dll.names + ' ' + string::replace(dll.filename,path::get-full-path(dirs.build.code) + '\','') + ''}" />
|
112
|
+
<property name="dll.names" value="${dll.names + ' ' + string::replace(string::replace(dll.filename,path::get-full-path(dirs.build.code) + '\',''),'\',path.separator) + ''}" />
|
106
113
|
</do>
|
107
114
|
</foreach>
|
108
115
|
|
@@ -118,14 +125,14 @@
|
|
118
125
|
<foreach item="File" property="dll.filename">
|
119
126
|
<in>
|
120
127
|
<items>
|
121
|
-
<exclude name="${dirs.build.code}
|
122
|
-
<exclude name="${dirs.build.code}
|
123
|
-
<include name="${dirs.build.code}
|
124
|
-
<include name="${dirs.build.code}
|
128
|
+
<exclude name="${dirs.build.code}${path.separator}lib${path.separator}**" />
|
129
|
+
<exclude name="${dirs.build.code}${path.separator}**${path.separator}TestFu.dll" />
|
130
|
+
<include name="${dirs.build.code}${path.separator}**${path.separator}*Test*dll" />
|
131
|
+
<include name="${dirs.build.code}${path.separator}**${path.separator}*Spec*dll" />
|
125
132
|
</items>
|
126
133
|
</in>
|
127
134
|
<do>
|
128
|
-
<property name="dll.names" value="${dll.names + ' ' + string::replace(dll.filename,path::get-full-path(dirs.build.code) + '\','') + ''}" />
|
135
|
+
<property name="dll.names" value="${dll.names + ' ' + string::replace(string::replace(dll.filename,path::get-full-path(dirs.build.code) + '\',''),'\',path.separator) + ''}" />
|
129
136
|
</do>
|
130
137
|
</foreach>
|
131
138
|
|
@@ -139,7 +146,6 @@
|
|
139
146
|
|
140
147
|
<if test="${dlls.test !=''}">
|
141
148
|
<echo message="Running tests using NUnit and putting results in ${dirs.test_results}."/>
|
142
|
-
|
143
149
|
<exec
|
144
150
|
program="${app.nunit.console}"
|
145
151
|
workingdir="${dirs.build.code}"
|
@@ -147,7 +153,6 @@
|
|
147
153
|
<arg value="${args.test_runner}" />
|
148
154
|
</exec>
|
149
155
|
<property name="tests.ran" value="true" />
|
150
|
-
|
151
156
|
</if>
|
152
157
|
<if test="${dlls.test ==''}">
|
153
158
|
<echo message="No test dlls to run against" />
|
@@ -159,20 +164,15 @@
|
|
159
164
|
<if test="${tests.ran}">
|
160
165
|
<nunit2report todir="${dirs.test_results}" failonerror="false" >
|
161
166
|
<fileset>
|
162
|
-
|
167
|
+
<include name="${dirs.test_results}${path.separator}*-results.xml"/>
|
163
168
|
</fileset>
|
164
169
|
</nunit2report>
|
165
170
|
</if>
|
166
171
|
</target>
|
167
|
-
|
172
|
+
|
168
173
|
<target name="open_results">
|
169
|
-
<echo message="Opening results
|
170
|
-
<
|
171
|
-
spawn="true"
|
172
|
-
program="${environment::get-folder-path('ProgramFiles')}\Internet Explorer\iexplore.exe"
|
173
|
-
commandline="${path::get-full-path(dirs.test_results)}\${file.test_results}.html"
|
174
|
-
>
|
175
|
-
</exec>
|
174
|
+
<echo message="Opening results - ${path::get-full-path(dirs.test_results) + path.separator + file.test_results + '.html'}" />
|
175
|
+
<results display="${path::get-full-path(dirs.test_results) + path.separator + file.test_results + '.html'}" />
|
176
176
|
</target>
|
177
177
|
|
178
178
|
<target name="custom_tasks_after">
|
@@ -1,99 +1,100 @@
|
|
1
|
-
<?xml version="1.0" encoding="utf-8" ?>
|
2
|
-
<project name="TestRunner" 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="
|
8
|
-
<property name="
|
9
|
-
<property name="
|
10
|
-
<property name="
|
11
|
-
<property name="folder.
|
12
|
-
<property name="
|
13
|
-
<property name="
|
14
|
-
<property name="
|
15
|
-
<property name="
|
16
|
-
<property name="
|
17
|
-
<property name="
|
18
|
-
<property name="
|
19
|
-
<property name="file.custom.step.
|
20
|
-
<property name="file.custom.step.
|
21
|
-
<property name="
|
22
|
-
<property name="
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
<
|
29
|
-
<call target="
|
30
|
-
<call target="
|
31
|
-
<call target="
|
32
|
-
<call target="
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
<
|
42
|
-
<
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
<
|
53
|
-
<
|
54
|
-
<
|
55
|
-
<
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
<
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
<nant buildfile="${dirs.current}
|
67
|
-
<nant buildfile="${dirs.current}
|
68
|
-
<
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
<nant buildfile="${dirs.current}
|
74
|
-
<nant buildfile="${dirs.current}
|
75
|
-
<
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
<nant buildfile="${dirs.current}
|
81
|
-
<nant buildfile="${dirs.current}
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
<
|
91
|
-
<
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
1
|
+
<?xml version="1.0" encoding="utf-8" ?>
|
2
|
+
<project name="TestRunner" 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
|
+
<property name="file.current.no_extension" value="test" />
|
9
|
+
<property name="dirs.current" value="${directory::get-parent-directory(project::get-buildfile-path())}" />
|
10
|
+
<property name="path.to.toplevel" value="..${path.separator}.." />
|
11
|
+
<property name="folder.build_scripts" value="build" overwrite="false" />
|
12
|
+
<property name="folder.build_scripts_custom" value="build.custom" overwrite="false" />
|
13
|
+
<property name="dirs.build_scripts_custom" value="${dirs.current}${path.separator}${path.to.toplevel}${path.separator}${folder.build_scripts_custom}${path.separator}analyzers" />
|
14
|
+
<property name="folder.code_build" value="build_output" overwrite="false" />
|
15
|
+
<property name="dirs.build" value="${dirs.current}${path.separator}${path.to.toplevel}${path.separator}${folder.code_build}" />
|
16
|
+
<property name="folder.app.drop" value="${project.name}" overwrite="false" />
|
17
|
+
<property name="dirs.build.code" value="${dirs.build}${path.separator}${folder.app.drop}" overwrite="false" />
|
18
|
+
<property name="test.framework" value="mbunit" overwrite="false" />
|
19
|
+
<property name="file.custom.step.before" value="${dirs.build_scripts_custom}${path.separator}${file.current.no_extension}.pre.step" />
|
20
|
+
<property name="file.custom.step.after" value="${dirs.build_scripts_custom}${path.separator}${file.current.no_extension}.post.step" />
|
21
|
+
<property name="file.custom.step.replace" value="${dirs.build_scripts_custom}${path.separator}${file.current.no_extension}.replace.step" />
|
22
|
+
<property name="is.replaced" value="false" />
|
23
|
+
<property name="fail.build.on.error" value="true" />
|
24
|
+
|
25
|
+
<target name="go" depends="run_tasks" />
|
26
|
+
|
27
|
+
<target name="run_tasks">
|
28
|
+
<echo message="Running ${project::get-name()} tasks." />
|
29
|
+
<call target="prepare" if="${target::exists('prepare')}" />
|
30
|
+
<call target="custom_tasks_before" if="${target::exists('custom_tasks_before')}" />
|
31
|
+
<call target="custom_tasks_replace" if="${target::exists('custom_tasks_replace')}" />
|
32
|
+
<call target="run_normal_tasks" if="${not is.replaced}" />
|
33
|
+
<call target="custom_tasks_after" if="${target::exists('custom_tasks_after')}" />
|
34
|
+
</target>
|
35
|
+
|
36
|
+
<target name="run_normal_tasks"
|
37
|
+
depends="run_tests"
|
38
|
+
description="Testing project for quality." />
|
39
|
+
|
40
|
+
<target name="custom_tasks_before">
|
41
|
+
<echo message="Running custom tasks if ${file.custom.step.before} exists." />
|
42
|
+
<nant buildfile="${file.custom.step.before}" inheritall="true" if="${file::exists(file.custom.step.before)}" failonerror="${fail.build.on.error}" />
|
43
|
+
<exec program="powershell.exe" if="${file::exists(file.custom.step.before + '.ps1')}" failonerror="${fail.build.on.error}">
|
44
|
+
<arg value="${path::get-full-path(file.custom.step.before + '.ps1')}" />
|
45
|
+
</exec>
|
46
|
+
<exec program="ruby.exe" if="${file::exists(file.custom.step.before + '.rb')}" failonerror="${fail.build.on.error}">
|
47
|
+
<arg value="${path::get-full-path(file.custom.step.before + '.rb')}" />
|
48
|
+
</exec>
|
49
|
+
</target>
|
50
|
+
|
51
|
+
<target name="custom_tasks_replace">
|
52
|
+
<echo message="Running custom tasks instead of normal tasks if ${file.custom.step.replace} exists." />
|
53
|
+
<property name="is.replaced" value="true" if="${file::exists(file.custom.step.replace)}" />
|
54
|
+
<nant buildfile="${file.custom.step.replace}" inheritall="true" if="${file::exists(file.custom.step.replace)}" failonerror="${fail.build.on.error}" />
|
55
|
+
<property name="is.replaced" value="true" if="${file::exists(file.custom.step.replace + '.ps1')}" />
|
56
|
+
<exec program="powershell.exe" if="${file::exists(file.custom.step.replace + '.ps1')}" failonerror="${fail.build.on.error}" >
|
57
|
+
<arg value="${path::get-full-path(file.custom.step.replace + '.ps1')}" />
|
58
|
+
</exec>
|
59
|
+
<property name="is.replaced" value="true" if="${file::exists(file.custom.step.replace + '.rb')}" />
|
60
|
+
<exec program="ruby.exe" if="${file::exists(file.custom.step.replace + '.rb')}" failonerror="${fail.build.on.error}" >
|
61
|
+
<arg value="${path::get-full-path(file.custom.step.replace + '.rb')}" />
|
62
|
+
</exec>
|
63
|
+
</target>
|
64
|
+
|
65
|
+
<target name="run_tests">
|
66
|
+
<nant buildfile="${dirs.current}${path.separator}mbunit2.test.step" inheritall="true" if="${test.framework=='mbunit2'}" />
|
67
|
+
<nant buildfile="${dirs.current}${path.separator}gallio.test.step" inheritall="true" if="${test.framework=='gallio'}" />
|
68
|
+
<nant buildfile="${dirs.current}${path.separator}nunit.test.step" inheritall="true" if="${test.framework=='nunit'}" />
|
69
|
+
<call target="set_normal_failure_mode" />
|
70
|
+
</target>
|
71
|
+
|
72
|
+
<target name="all">
|
73
|
+
<nant buildfile="${dirs.current}${path.separator}mbunit2.test.step" target="run_all_tests" inheritall="true" if="${test.framework=='mbunit2'}" />
|
74
|
+
<nant buildfile="${dirs.current}${path.separator}gallio.test.step" target="run_all_tests" inheritall="true" if="${test.framework=='gallio'}" />
|
75
|
+
<nant buildfile="${dirs.current}${path.separator}nunit.test.step" target="run_all_tests" inheritall="true" if="${test.framework=='nunit'}" />
|
76
|
+
<call target="set_normal_failure_mode" />
|
77
|
+
</target>
|
78
|
+
|
79
|
+
<target name="open_results">
|
80
|
+
<nant buildfile="${dirs.current}${path.separator}mbunit2.test.step" target="open_results" inheritall="true" if="${test.framework=='mbunit2'}" />
|
81
|
+
<nant buildfile="${dirs.current}${path.separator}gallio.test.step" target="open_results" inheritall="true" if="${test.framework=='gallio'}" />
|
82
|
+
<nant buildfile="${dirs.current}${path.separator}nunit.test.step" target="open_results" inheritall="true" if="${test.framework=='nunit'}" />
|
83
|
+
</target>
|
84
|
+
|
85
|
+
<target name="set_normal_failure_mode">
|
86
|
+
<property name="nant.onfailure" value="fail" />
|
87
|
+
</target>
|
88
|
+
|
89
|
+
<target name="custom_tasks_after">
|
90
|
+
<echo message="Running custom tasks if ${file.custom.step.after} exists." />
|
91
|
+
<nant buildfile="${file.custom.step.after}" inheritall="true" if="${file::exists(file.custom.step.after)}" failonerror="${fail.build.on.error}" />
|
92
|
+
<exec program="powershell.exe" if="${file::exists(file.custom.step.after + '.ps1')}" failonerror="${fail.build.on.error}" >
|
93
|
+
<arg value="${path::get-full-path(file.custom.step.after + '.ps1')}" />
|
94
|
+
</exec>
|
95
|
+
<exec program="ruby.exe" if="${file::exists(file.custom.step.after + '.rb')}" failonerror="${fail.build.on.error}" >
|
96
|
+
<arg value="${path::get-full-path(file.custom.step.after + '.rb')}" />
|
97
|
+
</exec>
|
98
|
+
</target>
|
99
|
+
|
99
100
|
</project>
|