git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@371996 13f79535-47bb-0310-9956-ffa450edef68master
@@ -0,0 +1,221 @@ | |||||
<?xml version="1.0"?> | |||||
<!-- | |||||
Copyright 2006 The Apache Software Foundation | |||||
Licensed under the Apache License, Version 2.0 (the "License"); | |||||
you may not use this file except in compliance with the License. | |||||
You may obtain a copy of the License at | |||||
http://www.apache.org/licenses/LICENSE-2.0 | |||||
Unless required by applicable law or agreed to in writing, software | |||||
distributed under the License is distributed on an "AS IS" BASIS, | |||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||||
See the License for the specific language governing permissions and | |||||
limitations under the License. | |||||
--> | |||||
<document> | |||||
<properties> | |||||
<index value="1"/> | |||||
<title>AntUnit</title> | |||||
</properties> | |||||
<body> | |||||
<section name="Idea"> | |||||
<p>Initially all tests for Ant tasks were written as individual | |||||
<a href="http://www.junit.org/">JUnit</a> test cases. Pretty | |||||
soon it was clear that most tests needed to perform common tasks | |||||
like reading a build file, intializing a project instance with | |||||
it and executing a target. At this point <a | |||||
href="http://svn.apache.org/viewcvs.cgi/ant/core/trunk/src/testcases/org/apache/tools/ant/BuildFileTest.java">BuildFileTest</a> | |||||
was invented, a base class for almost all task test cases.</p> | |||||
<p>BuildFileTest works fine and in fact has been picked up by <a | |||||
href="http://ant-contrib.sf.net/">the Ant-Contrib Project</a> | |||||
and others as well.</p> | |||||
<p>Over time a new pattern evolved, more and more tests only | |||||
executed a target and didn't check any effects. Instead that | |||||
target contained the assertions as a <code><fail></code> | |||||
task. This is an example taken from the build file for the | |||||
ANTLR task (using Ant 1.7 features):</p> | |||||
<source><![CDATA[ | |||||
<target name="test3" depends="setup"> | |||||
<antlr target="antlr.g" outputdirectory="${tmp.dir}"/> | |||||
<fail> | |||||
<condition> | |||||
<!-- to prove each of these files exists; | |||||
ANTLR >= 2.7.6 leaves behind new (.smap) files as well. --> | |||||
<resourcecount when="ne" count="5"> | |||||
<fileset dir="${tmp.dir}"> | |||||
<include name="CalcParserTokenTypes.txt" /> | |||||
<include name="CalcParserTokenTypes.java" /> | |||||
<include name="CalcLexer.java" /> | |||||
<include name="CalcParser.java" /> | |||||
<include name="CalcTreeWalker.java" /> | |||||
</fileset> | |||||
</resourcecount> | |||||
</condition> | |||||
</fail> | |||||
</target> | |||||
]]></source> | |||||
<p>where the corresponding JUnit testcase has been reduced | |||||
to</p> | |||||
<source><![CDATA[ | |||||
... | |||||
public class ANTLRTest extends BuildFileTest { | |||||
private final static String TASKDEFS_DIR = "src/etc/testcases/taskdefs/optional/antlr/"; | |||||
public ANTLRTest(String name) { | |||||
super(name); | |||||
} | |||||
public void setUp() { | |||||
configureProject(TASKDEFS_DIR + "antlr.xml"); | |||||
} | |||||
public void tearDown() { | |||||
executeTarget("cleanup"); | |||||
} | |||||
public void test3() { | |||||
executeTarget("test3"); | |||||
} | |||||
... | |||||
} | |||||
]]></source> | |||||
<p>This approach has a couple of advantages, one of them is that | |||||
it is very easy to translate an example build file from a bug | |||||
report into a test case. If you ask a user for a testcase for a | |||||
given bug in Ant, he now doesn't need to understand JUnit or how | |||||
to fit a test into Ant's existing tests any more.</p> | |||||
<p>AntUnit takes this approach to testing even further, it | |||||
removes JUnit completely and it comes with a set of predefined | |||||
<code><assert></code> tasks in order to reuse common kind | |||||
of checks.</p> | |||||
<p>It turns out that AntUnit lends itself as a solution to other | |||||
problems as well. The assertions are an easy way to validate a | |||||
setup before even starting the build process, for example. | |||||
AntUnit could also be used for functional and integration tests | |||||
outside of the scope of Ant tasks (assert contents of databases | |||||
after running an application, assert contents of HTTP responses | |||||
...). This is an area that will need more research.</p> | |||||
</section> | |||||
<section name="Concepts"> | |||||
<subsection name="antunit Task"> | |||||
<p>The <antunit> task drives the tests much like | |||||
<junit> does for JUnit tests.</p> | |||||
<p>When called on a build file, the task will start a new Ant | |||||
project for that build file and scan for targets with names | |||||
that start with "test". For each such target it then will</p> | |||||
<ol> | |||||
<li>Execute the target named setUp, if there is one.</li> | |||||
<li>Execute the target itself - if this target depends on | |||||
other targets the normal Ant rules apply and the dependent | |||||
targets are executed first.</li> | |||||
<li>Execute the target names tearDown, if there is one.</li> | |||||
</ol> | |||||
</subsection> | |||||
<subsection name="Assertions"> | |||||
<p>The base task is <code><assertTrue></code>. It | |||||
accepts a single nested condition and throws a subclass of | |||||
BuildException named AssertionFailedException if that | |||||
condition evaluates to false.</p> | |||||
<p>This task could have been implemented using | |||||
<code><macrodef></code> and <code><fail></code>, | |||||
but in fact it is a "real" task so that it is possible to | |||||
throw a subclass of BuildException. The | |||||
<code><antunit></code> task catches this exception and | |||||
marks the target as failed, any other type of Exception | |||||
(including other BuildException) are test errors.</p> | |||||
<p>Together with <code><assertTrue></code> there are | |||||
many predefined assertions for common conditions, most of | |||||
these are only macros.</p> | |||||
</subsection> | |||||
<subsection name="Other Tasks"> | |||||
<p>The <code><logcapturer></code> captures all messages | |||||
that pass Ant's logging system and provides them via a | |||||
reference inside of the project. If you want to assert | |||||
certain log messages, you need to start this task (prior to | |||||
your target under test) and use the | |||||
<code><assertLogContains></code> assertion.</p> | |||||
<p><code><expectFailure></code> is a task container that | |||||
catches any BuildException thrown by tasks nested into it. If | |||||
no exception has been thrown it will cause a test failure (by | |||||
throwing an AssertionFailedException).</p> | |||||
</subsection> | |||||
<subsection name="AntUnitListener"> | |||||
<p>Part of the library is the <code>AntUnitListener</code> | |||||
interface that can be used to record test results. The | |||||
<antunit> task accepts arbitrary many listeners and | |||||
relays test results to them.</p> | |||||
<p>Currently only a single implementation | |||||
<code><plainlistener></code> modelled after the "plain" | |||||
JUnit listener is bundeled with the library.</p> | |||||
</subsection> | |||||
</section> | |||||
<section name="Examples"> | |||||
<p>This is a way to test that <code><touch></code> | |||||
actually creates a file if it doesn't exist:</p> | |||||
<source><![CDATA[ | |||||
<project xmlns:au="antlib:org.apache.ant.antunit"> | |||||
<!-- is called prior to the test --> | |||||
<target name="setUp"> | |||||
<property name="foo" value="foo"/> | |||||
</target> | |||||
<!-- is called after the test, if if that causes an error --> | |||||
<target name="tearDown"> | |||||
<delete file="${foo}" quiet="true"/> | |||||
</target> | |||||
<!-- the actual test case --> | |||||
<target name="testTouchCreatesFile"> | |||||
<au:assertFileDoesntExist name="${foo}"/> | |||||
<touch file="${foo}"/> | |||||
<au:assertFileExists name="${foo}"/> | |||||
</target> | |||||
</project> | |||||
]]></source> | |||||
<p>When running a task like</p> | |||||
<source><![CDATA[ | |||||
<au:antunit> | |||||
<fileset dir="." includes="touch.xml"/> | |||||
<au:plainlistener/> | |||||
</au:antunit> | |||||
]]></source> | |||||
<p>from a buildfile of its own you'll get a result that looks like</p> | |||||
<source><![CDATA[ | |||||
]]></source> | |||||
</section> | |||||
</body> | |||||
</document> |
@@ -0,0 +1,146 @@ | |||||
<?xml version="1.0"?> | |||||
<!-- | |||||
Copyright 2006 The Apache Software Foundation | |||||
Licensed under the Apache License, Version 2.0 (the "License"); | |||||
you may not use this file except in compliance with the License. | |||||
You may obtain a copy of the License at | |||||
http://www.apache.org/licenses/LICENSE-2.0 | |||||
Unless required by applicable law or agreed to in writing, software | |||||
distributed under the License is distributed on an "AS IS" BASIS, | |||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||||
See the License for the specific language governing permissions and | |||||
limitations under the License. | |||||
--> | |||||
<document> | |||||
<properties> | |||||
<index value="1"/> | |||||
<title>.NET Ant Library</title> | |||||
</properties> | |||||
<body> | |||||
<section name="Idea"> | |||||
<p>This library doesn't strive to replace NAnt or MSBuild, its | |||||
main purpose is to help those of us who work on projects | |||||
crossing platform boundaries. With this library you can use Ant | |||||
to build and test the Java as well as the .NET parts of your | |||||
project.</p> | |||||
<p>This library provides a special version of the | |||||
<code><exec></code> task tailored to run .NET executables. | |||||
On Windows it will assume the Microsoft framework is around and | |||||
run the executable directly, while it will invoke Mono on any | |||||
other platform. Of course you can override these | |||||
assumptions.</p> | |||||
<p>Based on this a few tasks to run well known .NET utilities | |||||
from within Ant are provided, namely tasks to run <a | |||||
href="http://www.nunit.org/">NUnit</a>, <a | |||||
href="http://nant.sf.net/">NAnt</a> and <a | |||||
href="http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=27&SiteID=1">MSBuild</a>.</p> | |||||
<p>There also is some experimental <a | |||||
href="http://wix.sf.net/">Wix</a> task, but it probably doesn't | |||||
do anything useful at all.</p> | |||||
</section> | |||||
<section name="Tasks"> | |||||
<subsection name="dotnetexec"> | |||||
<p>Runs a .NET executable.</p> | |||||
</subsection> | |||||
<subsection name="nunit"> | |||||
<p>Runs NUnit tests.</p> | |||||
</subsection> | |||||
<subsection name="nant"> | |||||
<p>Invokes NAnt, either on an external file or a build file | |||||
snippet contained inside your Ant build file.</p> | |||||
</subsection> | |||||
<subsection name="msbuild"> | |||||
<p>Invokes MSBuild, either on an external file or a build file | |||||
snippet contained inside your Ant build file.</p> | |||||
</subsection> | |||||
</section> | |||||
<section name="Examples"> | |||||
<subsection name="nant"> | |||||
<source><![CDATA[ | |||||
<project xmlns:dn="antlib:org.apache.ant.dotnet"> | |||||
<dn:nant> | |||||
<build> | |||||
<echo message="Hello world"/> | |||||
</build> | |||||
</dn:nant> | |||||
</project> | |||||
]]></source> | |||||
<p>runs NAnt on the embedded <code><echo></code> | |||||
task, output looks like</p> | |||||
<source><![CDATA[ | |||||
Buildfile: test.xml | |||||
[dn:nant] NAnt 0.85 (Build 0.85.1932.0; rc3; 16.04.2005) | |||||
[dn:nant] Copyright (C) 2001-2005 Gerry Shaw | |||||
[dn:nant] http://nant.sourceforge.net | |||||
[dn:nant] | |||||
[dn:nant] Buildfile: file:///c:/DOKUME~1/STEFAN~1.BOD/LOKALE~1/Temp/build1058451555.xml | |||||
[dn:nant] Target framework: Microsoft .NET Framework 1.1 | |||||
[dn:nant] | |||||
[dn:nant] [echo] Hello world | |||||
[dn:nant] | |||||
[dn:nant] BUILD SUCCEEDED | |||||
[dn:nant] | |||||
[dn:nant] Total time: 0.2 seconds. | |||||
BUILD SUCCESSFUL | |||||
Total time: 2 seconds]]></source> | |||||
</subsection> | |||||
<subsection name="msbuild"> | |||||
<source><![CDATA[ | |||||
<project xmlns:dn="antlib:org.apache.ant.dotnet"> | |||||
<dn:msbuild> | |||||
<build> | |||||
<Message Text="Hello world" | |||||
xmlns="http://schemas.microsoft.com/developer/msbuild/2003"/> | |||||
</build> | |||||
</dn:msbuild> | |||||
</project>]]></source> | |||||
<p>runs MSBuild on the embedded <code><Message></code> | |||||
task, output looks like</p> | |||||
<source><![CDATA[ | |||||
Buildfile: test.xml | |||||
[dn:msbuild] Microsoft (R) Build Engine Version 2.0.50727.42 | |||||
[dn:msbuild] [Microsoft .NET Framework, Version 2.0.50727.42] | |||||
[dn:msbuild] Copyright (C) Microsoft Corporation 2005. All rights reserved. | |||||
[dn:msbuild] Build started 15.12.2005 20:21:56. | |||||
[dn:msbuild] __________________________________________________ | |||||
[dn:msbuild] Project "c:\Dokumente und Einstellungen\stefan.bodewig\Lokale Einstellungen\Temp\build1543310185.xml" (default targets): | |||||
[dn:msbuild] Target generated-by-ant: | |||||
[dn:msbuild] Hello world | |||||
[dn:msbuild] Build succeeded. | |||||
[dn:msbuild] 0 Warning(s) | |||||
[dn:msbuild] 0 Error(s) | |||||
[dn:msbuild] Time Elapsed 00:00:00.10 | |||||
BUILD SUCCESSFUL | |||||
Total time: 0 seconds | |||||
]]></source> | |||||
</subsection> | |||||
</section> | |||||
</body> | |||||
</document> |
@@ -1,6 +1,6 @@ | |||||
<?xml version="1.0"?> | <?xml version="1.0"?> | ||||
<!-- | <!-- | ||||
Copyright 2005 The Apache Software Foundation | |||||
Copyright 2005-2006 The Apache Software Foundation | |||||
Licensed under the Apache License, Version 2.0 (the "License"); | Licensed under the Apache License, Version 2.0 (the "License"); | ||||
you may not use this file except in compliance with the License. | you may not use this file except in compliance with the License. | ||||
@@ -25,7 +25,128 @@ | |||||
<section name="Ant Libraries"> | <section name="Ant Libraries"> | ||||
<p>No Ant Library has left the sandbox yet.</p> | |||||
<a name="antunit"/> | |||||
<subsection name="AntUnit - Unit Test Framework for Ant Tasks"> | |||||
<p>AntUnit borrows ideas from JUnit 3.x and the <junit> | |||||
task. It provides a task that runs build files as unit tests | |||||
as well as a number of assertion tasks to support the | |||||
idea.</p> | |||||
<table> | |||||
<tr> | |||||
<th>Homepage:</th> | |||||
<td><a href="./antunit/index.html">http://ant.apache.org/antlibs/antunit/</a></td> | |||||
</tr> | |||||
<tr> | |||||
<th>SVN URL:</th> | |||||
<td><a href="https://svn.apache.org/repos/asf/ant/antlibs/antunit/trunk/">https://svn.apache.org/repos/asf/ant/antlibs/antunit/trunk/</a></td> | |||||
</tr> | |||||
<tr> | |||||
<th>ViewSVN:</th> | |||||
<td><a href="http://svn.apache.org/viewcvs.cgi/ant/antlibs/antunit/trunk/">http://svn.apache.org/viewcvs.cgi/ant/antlibs/antunit/trunk/</a></td> | |||||
</tr> | |||||
<tr> | |||||
<th>Ant compatibility:</th> | |||||
<td>Ant 1.7.x</td> | |||||
</tr> | |||||
<tr> | |||||
<th>Added to sandbox:</th> | |||||
<td>2005-04-15</td> | |||||
</tr> | |||||
<tr> | |||||
<th>Promoted from sandbox:</th> | |||||
<td>2005-11-22</td> | |||||
</tr> | |||||
<tr> | |||||
<th>Latest Release:</th> | |||||
<td>None</td> | |||||
</tr> | |||||
</table> | |||||
</subsection> | |||||
<a name="dotnet"/> | |||||
<subsection name="DotNet - Improved Support for .NET projects"> | |||||
<p>Provides a simple infrastructure to execute .NET | |||||
applications from within Ant for different VMs so that the | |||||
user doesn't have to change the build file when she wants to | |||||
run Mono on Linux and Microsoft's VM on Windows.</p> | |||||
<p>Also contains <nant>, <nunit> and | |||||
<msbuild> tasks and an untested <wix> tasks.</p> | |||||
<table> | |||||
<tr> | |||||
<th>Homepage:</th> | |||||
<td><a href="./dotnet/index.html">http://ant.apache.org/antlibs/dotnet/</a></td> | |||||
</tr> | |||||
<tr> | |||||
<th>SVN URL:</th> | |||||
<td><a href="https://svn.apache.org/repos/asf/ant/antlibs/dotnet/trunk/">https://svn.apache.org/repos/asf/ant/antlibs/dotnet/trunk/</a></td> | |||||
</tr> | |||||
<tr> | |||||
<th>ViewSVN:</th> | |||||
<td><a href="http://svn.apache.org/viewcvs.cgi/ant/antlibs/dotnet/trunk/">http://svn.apache.org/viewcvs.cgi/ant/antlibs/dotnet/trunk/</a></td> | |||||
</tr> | |||||
<tr> | |||||
<th>Ant compatibility:</th> | |||||
<td>Ant 1.7.x<br/>A branch that works with Ant 1.6.2 and | |||||
above exists in <a href="https://svn.apache.org/repos/asf/ant/antlibs/dotnet/branches/Ant_1.6.2_compatible/">https://svn.apache.org/repos/asf/ant/antlibs/dotnet/branches/Ant_1.6.2_compatible/</a></td> | |||||
</tr> | |||||
<tr> | |||||
<th>Added to sandbox:</th> | |||||
<td>2005-04-15</td> | |||||
</tr> | |||||
<tr> | |||||
<th>Promoted from sandbox:</th> | |||||
<td>2005-11-22</td> | |||||
</tr> | |||||
<tr> | |||||
<th>Latest Release:</th> | |||||
<td>None</td> | |||||
</tr> | |||||
</table> | |||||
</subsection> | |||||
<a name="svn"/> | |||||
<subsection name="SVN - Subversion Support"> | |||||
<p>Contains tasks that correspond to Ant's <cvs>, | |||||
<cvschangelog> and <cvstagdiff> tasks. Requires | |||||
Subversion's command line client.</p> | |||||
<table> | |||||
<tr> | |||||
<th>Homepage:</th> | |||||
<td><a href="./svn/index.html">http://ant.apache.org/antlibs/svn/</a></td> | |||||
</tr> | |||||
<tr> | |||||
<th>SVN URL:</th> | |||||
<td><a href="https://svn.apache.org/repos/asf/ant/antlibs/svn/trunk/">https://svn.apache.org/repos/asf/ant/antlibs/svn/trunk/</a></td> | |||||
</tr> | |||||
<tr> | |||||
<th>ViewSVN:</th> | |||||
<td><a href="http://svn.apache.org/viewcvs.cgi/ant/antlibs/svn/trunk/">http://svn.apache.org/viewcvs.cgi/ant/antlibs/svn/trunk/</a></td> | |||||
</tr> | |||||
<tr> | |||||
<th>Ant compatibility:</th> | |||||
<td>Ant 1.7.x</td> | |||||
</tr> | |||||
<tr> | |||||
<th>Added to sandbox:</th> | |||||
<td>2005-04-15</td> | |||||
</tr> | |||||
<tr> | |||||
<th>Promoted from sandbox:</th> | |||||
<td>2005-11-22</td> | |||||
</tr> | |||||
<tr> | |||||
<th>Latest Release:</th> | |||||
<td>None</td> | |||||
</tr> | |||||
</table> | |||||
</subsection> | |||||
</section> | </section> | ||||
@@ -1,6 +1,6 @@ | |||||
<?xml version="1.0"?> | <?xml version="1.0"?> | ||||
<!-- | <!-- | ||||
Copyright 2005 The Apache Software Foundation | |||||
Copyright 2005-2006 The Apache Software Foundation | |||||
Licensed under the Apache License, Version 2.0 (the "License"); | Licensed under the Apache License, Version 2.0 (the "License"); | ||||
you may not use this file except in compliance with the License. | you may not use this file except in compliance with the License. | ||||
@@ -37,6 +37,9 @@ | |||||
<section name="Current Sandbox Ant Libraries"> | <section name="Current Sandbox Ant Libraries"> | ||||
<p>There are no Ant libraries in the sandbox right now.</p> | |||||
<!-- example for copy/paste reuse ;-) | |||||
<subsection name="AntUnit - Unit Test Framework for Ant Tasks"> | <subsection name="AntUnit - Unit Test Framework for Ant Tasks"> | ||||
<p>AntUnit borrows ideas from JUnit 3.x and the <junit> | <p>AntUnit borrows ideas from JUnit 3.x and the <junit> | ||||
@@ -46,77 +49,12 @@ | |||||
<table> | <table> | ||||
<tr> | <tr> | ||||
<th>URL:</th> | |||||
<td>https://svn.apache.org/repos/asf/ant/sandbox/antlibs/antunit/trunk/</td> | |||||
</tr> | |||||
<tr> | |||||
<th>ViewSVN:</th> | |||||
<td>http://svn.apache.org/viewcvs.cgi/ant/sandbox/antlibs/antunit/trunk/</td> | |||||
</tr> | |||||
<tr> | |||||
<th>Ant compatibility:</th> | |||||
<td>Ant 1.7.x</td> | |||||
</tr> | |||||
<tr> | |||||
<th>Added to sandbox:</th> | |||||
<td>2005-04-15</td> | |||||
</tr> | |||||
<tr> | |||||
<th>Sponsoring Committers</th> | |||||
<td>Stefan Bodewig</td> | |||||
</tr> | |||||
</table> | |||||
</subsection> | |||||
<subsection name="DotNet - Improved Support for .NET projects"> | |||||
<p>Provides a simple infrastructure to execute .NET | |||||
applications from within Ant for different VMs so that the | |||||
user doesn't have to change the build file when she wants to | |||||
run Mono on Linux and Microsoft's VM on Windows.</p> | |||||
<p>Also contains <nant>, <nunit> and untested | |||||
<msbuild> and <wix> tasks.</p> | |||||
<table> | |||||
<tr> | |||||
<th>URL:</th> | |||||
<td>https://svn.apache.org/repos/asf/ant/sandbox/antlibs/dotnet/trunk/</td> | |||||
</tr> | |||||
<tr> | |||||
<th>ViewSVN:</th> | |||||
<td>http://svn.apache.org/viewcvs.cgi/ant/sandbox/antlibs/dotnet/trunk/</td> | |||||
</tr> | |||||
<tr> | |||||
<th>Ant compatibility:</th> | |||||
<td>Ant 1.7.x<br/>A branch that works with Ant 1.6.2 and | |||||
above exists in https://svn.apache.org/repos/asf/ant/sandbox/antlibs/dotnet/branches/Ant_1.6.2_compatible/</td> | |||||
</tr> | |||||
<tr> | |||||
<th>Added to sandbox:</th> | |||||
<td>2005-04-15</td> | |||||
</tr> | |||||
<tr> | |||||
<th>Sponsoring Committers</th> | |||||
<td>Stefan Bodewig</td> | |||||
</tr> | |||||
</table> | |||||
</subsection> | |||||
<subsection name="SVN - Subversion Support"> | |||||
<p>Contains tasks that correspond to Ant's <cvs>, | |||||
<cvschangelog> and <cvstagdiff> tasks. Requires | |||||
Subversion's command line client.</p> | |||||
<table> | |||||
<tr> | |||||
<th>URL:</th> | |||||
<td>https://svn.apache.org/repos/asf/ant/sandbox/antlibs/svn/trunk/</td> | |||||
<th>SVN URL:</th> | |||||
<td><a href="https://svn.apache.org/repos/asf/ant/sandbox/antlibs/antunit/trunk/">https://svn.apache.org/repos/asf/ant/sandbox/antlibs/antunit/trunk/</a></td> | |||||
</tr> | </tr> | ||||
<tr> | <tr> | ||||
<th>ViewSVN:</th> | <th>ViewSVN:</th> | ||||
<td>http://svn.apache.org/viewcvs.cgi/ant/sandbox/antlibs/svn/trunk/</td> | |||||
<td><a href="http://svn.apache.org/viewcvs.cgi/ant/sandbox/antlibs/antunit/trunk/">http://svn.apache.org/viewcvs.cgi/ant/sandbox/antlibs/antunit/trunk/</a></td> | |||||
</tr> | </tr> | ||||
<tr> | <tr> | ||||
<th>Ant compatibility:</th> | <th>Ant compatibility:</th> | ||||
@@ -132,7 +70,7 @@ | |||||
</tr> | </tr> | ||||
</table> | </table> | ||||
</subsection> | </subsection> | ||||
--> | |||||
</section> | </section> | ||||
</body> | </body> | ||||
@@ -0,0 +1,69 @@ | |||||
<?xml version="1.0"?> | |||||
<!-- | |||||
Copyright 2006 The Apache Software Foundation | |||||
Licensed under the Apache License, Version 2.0 (the "License"); | |||||
you may not use this file except in compliance with the License. | |||||
You may obtain a copy of the License at | |||||
http://www.apache.org/licenses/LICENSE-2.0 | |||||
Unless required by applicable law or agreed to in writing, software | |||||
distributed under the License is distributed on an "AS IS" BASIS, | |||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||||
See the License for the specific language governing permissions and | |||||
limitations under the License. | |||||
--> | |||||
<document> | |||||
<properties> | |||||
<index value="1"/> | |||||
<title>Subversion Ant Library</title> | |||||
</properties> | |||||
<body> | |||||
<section name="Idea"> | |||||
<p>The main purpose of this Ant library is to provide the same | |||||
level of support that Ant provides for CVS. This means the | |||||
tasks are wrappers on top of the command line client (read: you | |||||
still need to install an svn client) and there is not much more | |||||
than running the executable and creating some reports.</p> | |||||
<p>If you are looking for projects that aim at more, there are | |||||
better alternatives, for example <a | |||||
href="http://subclipse.tigris.org/svnant.html">Subclipse's Ant | |||||
task</a> or <a | |||||
href="http://tmate.org/svn/ant.html">JavaSVN</a>.</p> | |||||
</section> | |||||
<section name="Tasks"> | |||||
<subsection name="svn"> | |||||
<p>A very thin layer on top of the command line executable, | |||||
comparable to <a | |||||
href="http://ant.apache.org/manual/CoreTasks/cvs.html">the CVS | |||||
task</a>.</p> | |||||
</subsection> | |||||
<subsection name="changelog"> | |||||
<p>Creates a log of change comments between two revisions, | |||||
comparable to <a | |||||
href="http://ant.apache.org/manual/CoreTasks/changelog.html">CvsChangeLog</a>.</p> | |||||
</subsection> | |||||
<subsection name="*diff"> | |||||
<p><code><tagdiff></code> creates a differences report | |||||
for the changes between two tags or branches.</p> | |||||
<p><code><revisiondiff></code> creates a differences report | |||||
for the changes between two revisions.</p> | |||||
<p>Together comparable to <a | |||||
href="http://ant.apache.org/manual/CoreTasks/cvstagdiff.html">CvsTagDiff</a>.</p> | |||||
</subsection> | |||||
</section> | |||||
<section name="Examples"> | |||||
</section> | |||||
</body> | |||||
</document> |