ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Costin Manolache <cos...@eng.sun.com>
Subject Re: PATCH: JUnit task
Date Thu, 23 Mar 2000 16:26:49 GMT
If  everyone agrees to check in JUnit, I would also like to ask for GTest to get in - it's
also a test task used in Tomcat and watchdog.

It can make GET/POST requests, check the result code and headers, compare the body with a
golden file or just grep it.
I think it can be used to test any web application - and it would be usefull to other
people too.

If everyone agrees, I would like to add it to the optional package.

Costin

Thomas Haas wrote:

> Hi
>
> The JUnit patch is more of a quick hack prove of concept thing than anything else. If
> you (and/or others) are interested in, it will become something real cool and usefull.
> I would love if the Java/Exec tasks take a Vector as the argument to run instead of a
> String which must be interpreted (by the OS?). I always feel a little unconfortable in
> defining arguments containing spaces which will work on any platform. Providing the
> command and all arguments as vector, may also eliminate the need for the antRun shell
> script. I have not tried it yet and their may be other issues lurking, if you know one,
> please tell me. Further comments are also welcomed.
>
> I would also like the thing to generate XML output for further processing the test
> results. However this is more of a JUnit than ant issue, but someone on this list maybe
> also interested in this. Let's discuss this of this list.
>
> - tom
>
> Patrick Chanezon wrote:
>
> > Excellent idea Thomas.
> > We use Ant on our project and we also use JUnit. Actually I was planning to add
the
> > task myself later on, so thanks for having done it and I'm very interested into
> > seeing that task integrated into ant.
> >
> > P@
> >
> > Thomas Haas wrote:
> >
> > > Hi all
> > >
> > > Beside builds we want also run tests by ant. Therefor I provide a ant
> > > task to run tests written using the JUnit framework.
> > >
> > > The JUnit framework was initially created by Erich Gamma and Kent Beck
> > > and is intended to ease unit tests.
> > > More infos on JUnit can be found at:
> > >  ftp://www.armaties.com/D/home/armaties/ftp/TestingFramework/JUnit/
> > >
> > > If others are interested in a JUnit task, I ask the committers to apply
> > > and commit the patch.
> > > Until now, no patch for index.html is available. I will provide one, if
> > > this optional task gets applied and committed.
> > >
> > > Any feedback is welcomed.
> > >
> > > Thanky you
> > > - tom
> > >
> > >   ------------------------------------------------------------------------
> > > --- defaults.properties.orig    Wed Mar 22 05:20:52 2000
> > > +++ defaults.properties Wed Mar 22 22:16:16 2000
> > > @@ -31,6 +31,7 @@
> > >  script=org.apache.tools.ant.taskdefs.optional.Script
> > >  netrexxc=org.apache.tools.ant.taskdefs.optional.NetRexxC
> > >  renameext=org.apache.tools.ant.taskdefs.optional.RenameExtensions
> > > +junitrun=org.apache.tools.ant.taskdefs.optional.JUnitRunner
> > >
> > >  # deprecated ant tasks (kept for back compatibility)
> > >  javadoc2=org.apache.tools.ant.taskdefs.Javadoc
> > >
> > >   ------------------------------------------------------------------------
> > > --- JUnitRunner.java.orig       Wed Mar 22 22:17:04 2000
> > > +++ JUnitRunner.java    Wed Mar 22 22:56:54 2000
> > > @@ -0,0 +1,132 @@
> > > +/*
> > > + * The Apache Software License, Version 1.1
> > > + *
> > > + * Copyright (c) 1999 The Apache Software Foundation.  All rights
> > > + * reserved.
> > > + *
> > > + * Redistribution and use in source and binary forms, with or without
> > > + * modification, are permitted provided that the following conditions
> > > + * are met:
> > > + *
> > > + * 1. Redistributions of source code must retain the above copyright
> > > + *    notice, this list of conditions and the following disclaimer.
> > > + *
> > > + * 2. Redistributions in binary form must reproduce the above copyright
> > > + *    notice, this list of conditions and the following disclaimer in
> > > + *    the documentation and/or other materials provided with the
> > > + *    distribution.
> > > + *
> > > + * 3. The end-user documentation included with the redistribution, if
> > > + *    any, must include the following acknowlegement:
> > > + *       "This product includes software developed by the
> > > + *        Apache Software Foundation (http://www.apache.org/)."
> > > + *    Alternately, this acknowlegement may appear in the software itself,
> > > + *    if and wherever such third-party acknowlegements normally appear.
> > > + *
> > > + * 4. The names "The Jakarta Project", "Tomcat", and "Apache Software
> > > + *    Foundation" must not be used to endorse or promote products derived
> > > + *    from this software without prior written permission. For written
> > > + *    permission, please contact apache@apache.org.
> > > + *
> > > + * 5. Products derived from this software may not be called "Apache"
> > > + *    nor may "Apache" appear in their names without prior written
> > > + *    permission of the Apache Group.
> > > + *
> > > + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
> > > + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
> > > + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
> > > + * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
> > > + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> > > + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
> > > + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
> > > + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
> > > + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
> > > + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
> > > + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
> > > + * SUCH DAMAGE.
> > > + * ====================================================================
> > > + *
> > > + * This software consists of voluntary contributions made by many
> > > + * individuals on behalf of the Apache Software Foundation.  For more
> > > + * information on the Apache Software Foundation, please see
> > > + * <http://www.apache.org/>.
> > > + */
> > > +
> > > +package org.apache.tools.ant.taskdefs.optional;
> > > +
> > > +import org.apache.tools.ant.taskdefs.Java;
> > > +import org.apache.tools.ant.BuildException;
> > > +
> > > +import junit.textui.TestRunner;
> > > +import junit.textui.TextTestResult;
> > > +
> > > +
> > > +/**
> > > + * Ant task to run JUnit tests.
> > > + *
> > > + * JUnit is a framework to create unit test. It has been initially
> > > + * created by Erich Gamma and Kent Beck.
> > > + * JUnit can be found at <a
> > > + * href="ftp://www.armaties.com/D/home/armaties/ftp/TestingFramework/JUnit/"
> > > + * >ftp://www.armaties.com/D/home/armaties/ftp/TestingFramework/JUnit/</a>.
> > > + * <p>
> > > + * This ant task runs a single TestCase. By default it spans a new Java VM
> > > + * to prevent interferences between different testcases, unless
> > > + * <code>fork</code> has been disabled.
> > > + *
> > > + * @author Thomas Haas
> > > + */
> > > +public class JUnitRunner extends Java {
> > > +
> > > +    private String junit = null;
> > > +    private String classpath = null;
> > > +
> > > +    /**
> > > +     * Set the path to junit classes.
> > > +     * @param junit path to junit classes.
> > > +     */
> > > +    public void setJunit(String junit) {
> > > +        this.junit = junit;
> > > +    }
> > > +
> > > +    /**
> > > +     * Set the classpath to be used by the testcase.
> > > +     * @param classpath the classpath used to run the testcase.
> > > +     */
> > > +    public void setClasspath(String classpath) {
> > > +        this.classpath = classpath;
> > > +    }
> > > +
> > > +    /**
> > > +     * The testcase, which must be subclass of
> > > +     * <code>junit.framework.Test</code>.
> > > +     * @param testcase the testcase to run.
> > > +     */
> > > +    public void setTestcase(String testcase) {
> > > +        setArgs(testcase);
> > > +    }
> > > +
> > > +
> > > +    /**
> > > +     * Creates a new JUnitRunner and enables fork of a new Java VM.
> > > +     */
> > > +    public JUnitRunner() {
> > > +        setFork("on");
> > > +        setClassname("junit.textui.TestRunner");
> > > +    }
> > > +
> > > +    /**
> > > +     * Runs the testcase.
> > > +     */
> > > +    public void execute() throws BuildException {
> > > +        if (junit != null) {
> > > +            if (classpath == null) {
> > > +                super.setClasspath(junit);
> > > +            } else {
> > > +                super.setClasspath(classpath + ":" + junit);
> > > +            }
> > > +        }
> > > +        super.execute();
> > > +    }
> > > +
> > > +}
> > >
> > >   ------------------------------------------------------------------------
> > > --- build.xml.orig      Wed Mar 22 23:00:18 2000
> > > +++ build.xml   Wed Mar 22 22:57:58 2000
> > > @@ -30,6 +30,7 @@
> > >
> > >      <available property="bsf.present" classname="com.ibm.bsf.BSFManager"
/>
> > >      <available property="netrexx.present" classname="netrexx.lang.Rexx"
/>
> > > +    <available property="junit.present" classname="junit.textui.TestRunner"
/>
> > >
> > >      <!-- Give user a chance to override without editing this file
> > >           (and without typing -D each time it compiles it -->
> > > @@ -56,6 +57,7 @@
> > >             optimize="on" >
> > >        <exclude name="**/Script.java" unless="bsf.present" />
> > >        <exclude name="**/NetRexxC.java" unless="netrexx.present" />
> > > +      <exclude name="**/JUnitRunner.java" unless="junit.present" />
> > >      </javac>
> > >    </target>
> > >
> >
> > --
> > Patrick Chanezon, Vortex - Portal/EServices Technical Lead
> > Netscape Communications Corp. - http://people.netscape.com/chanezon/
> > Opinions are my own.
> >
> > "Ouais, n'empêche qu'à la retraite de Russie, c'est les mecs qu'étaient à la
traîne
> > qu'ont été repassés..." - Michel Audiard - Les Tontons Flingueurs
>
> --
> * Thomas Haas                    <mailto:haas@softwired-inc.com>
> * SoftWired AG                   <http://www.softwired-inc.com/>
> * Technoparkstr. 1  ***  CH-8005 Zurich  ***  +41-1-4452370


Mime
View raw message