git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@276793 13f79535-47bb-0310-9956-ffa450edef68master
| @@ -32,8 +32,6 @@ Short term goals are: | |||||
| * A <wix> task. | * A <wix> task. | ||||
| Mid term goals: | |||||
| * A <nunit> task. | * A <nunit> task. | ||||
| Those tasks should end up in an antlib of their own in order to be | Those tasks should end up in an antlib of their own in order to be | ||||
| @@ -112,6 +112,10 @@ | |||||
| tool, untested.</li> | tool, untested.</li> | ||||
| <li><a href="wix.html">wix</a> - execute the WiX toolset, untested.</li> | <li><a href="wix.html">wix</a> - execute the WiX toolset, untested.</li> | ||||
| <li><a href="nunit.html">nunit</a> - execute the | |||||
| nunit-console.exe <a href="http://www.nunit.org/">NUnit</a> | |||||
| test runner.</li> | |||||
| </ul> | </ul> | ||||
| <hr/> | <hr/> | ||||
| @@ -0,0 +1,177 @@ | |||||
| <html> | |||||
| <head> | |||||
| <meta http-equiv="Content-Language" content="en-us"></meta> | |||||
| <title>NUnit Task</title> | |||||
| </head> | |||||
| <body> | |||||
| <h2><a name="dotnetexec">NUnit</a></h2> | |||||
| <h3>Description</h3> | |||||
| <p>Runs the <a href="http://www.nunit.org/">NUnit</a> console | |||||
| test runner.</p> | |||||
| <h3>Parameters</h3> | |||||
| <table border="1" cellpadding="2" cellspacing="0"> | |||||
| <tr> | |||||
| <td valign="top"><b>Attribute</b></td> | |||||
| <td valign="top"><b>Description</b></td> | |||||
| <td align="center" valign="top"><b>Required</b></td> | |||||
| </tr> | |||||
| <tr> | |||||
| <td valign="top">vm</td> | |||||
| <td valign="top">Same as <a | |||||
| href="dotnetexec.html">dotnetexec</a>'s vm attribute. | |||||
| Specify the framework to use.</td> | |||||
| <td align="center">No.</td> | |||||
| </tr> | |||||
| <tr> | |||||
| <td valign="top">config</td> | |||||
| <td valign="top">Config file to use</td> | |||||
| <td align="center">No.</td> | |||||
| </tr> | |||||
| <tr> | |||||
| <td valign="top">output</td> | |||||
| <td valign="top">Where test output should go.</td> | |||||
| <td align="center">No.</td> | |||||
| </tr> | |||||
| <tr> | |||||
| <td valign="top">error</td> | |||||
| <td valign="top">Where test error output should go.</td> | |||||
| <td align="center">No.</td> | |||||
| </tr> | |||||
| <tr> | |||||
| <td valign="top">xmlout</td> | |||||
| <td valign="top">Where NUnit's XML output should go.</td> | |||||
| <td align="center">No.</td> | |||||
| </tr> | |||||
| <tr> | |||||
| <td valign="top">transform</td> | |||||
| <td valign="top">The transformation to apply.</td> | |||||
| <td align="center">No.</td> | |||||
| </tr> | |||||
| <tr> | |||||
| <td valign="top">thread</td> | |||||
| <td valign="top">Causes a separate thread to be created for | |||||
| running the tests - see the NUnit documentation for | |||||
| details.</td> | |||||
| <td align="center">No - defaults to false.</td> | |||||
| </tr> | |||||
| <tr> | |||||
| <td valign="top">noshadow</td> | |||||
| <td valign="top">Disables shadow copying of the assembly in | |||||
| order to provide improved performance..</td> | |||||
| <td align="center">No - defaults to false.</td> | |||||
| </tr> | |||||
| <tr> | |||||
| <td valign="top">fixture</td> | |||||
| <td valign="top">Test fixture to run.</td> | |||||
| <td align="center">No.</td> | |||||
| </tr> | |||||
| <tr> | |||||
| <td valign="top">labels</td> | |||||
| <td valign="top">Causes an identifying label to be displayed | |||||
| at the start of each test case.</td> | |||||
| <td align="center">No - defaults to false.</td> | |||||
| </tr> | |||||
| <tr> | |||||
| <td valign="top">failOnError</td> | |||||
| <td valign="top">Stops the build if NUnit returns with a code | |||||
| indicating an error or failure.</td> | |||||
| <td align="center">No - defaults to false.</td> | |||||
| </tr> | |||||
| </table> | |||||
| <h3>Parameters specified as nested elements</h3> | |||||
| <h4>testassembly</h4> | |||||
| <p><code>testassembly</code> has a single required attribute name - | |||||
| specifies an assembly or a project file holding tests.</p> | |||||
| <h4>include/exclude</h4> | |||||
| <p><code>in/exclude</code> have a single required attribute name - | |||||
| specifies a category to include or exclude from the tests.</p> | |||||
| <p><b>Note</b> that in current versions of NUnit (up to 2.2) you | |||||
| may choose to either include or exclude categories in a run, but | |||||
| not both. This task does <b>not</b> enforce this restriction | |||||
| since future versions of NUnit may change behavior.</p> | |||||
| <h4>redirector</h4> | |||||
| <p>A nested <a | |||||
| href="http://ant.apache.org/manual/CoreTypes/redirector.html">I/O | |||||
| Redirector</a> can be specified. Any file mapping is done using a | |||||
| <code>null</code> sourcefile; therefore not all <a | |||||
| href="http://ant.apache.org/manual/CoreTypes/mapper.html">Mapper</a> | |||||
| types will return results.</p> | |||||
| <h4>env</h4> <p>It is possible to specify environment variables to | |||||
| pass to the system command via nested <code><env></code> | |||||
| elements. They support the same attributes as the nested <a | |||||
| href="http://ant.apache.org/manual/CoreTasks/exec.html#env"><code>env</code> | |||||
| element of the <code><exec></code> task</a>.</p> | |||||
| <h3>Examples</h3> | |||||
| <h4>Specify an assembly or project:</h4> | |||||
| <pre> | |||||
| <nunit> | |||||
| <testassembly name="nunit.tests.dll"/> | |||||
| </nunit> | |||||
| </pre> | |||||
| <p>or</p> | |||||
| <pre> | |||||
| <nunit> | |||||
| <testassembly name="nunit.tests.csproj"/> | |||||
| </nunit> | |||||
| </pre> | |||||
| <h4>Specifying an Assembly and a Fixture</h4> | |||||
| <pre> | |||||
| <nunit fixture="NUnit.Tests.AssertionTests"> | |||||
| <testassembly name="nunit.tests.dll"/> | |||||
| </nunit> | |||||
| </pre> | |||||
| <h4>Specifying Test Categories to Include</h4> | |||||
| <pre> | |||||
| <nunit> | |||||
| <testassembly name="nunit.tests.dll"/> | |||||
| <include name="Baseline"/> | |||||
| </nunit> | |||||
| </pre> | |||||
| <h4>Specifying the XML file name</h4> | |||||
| <pre> | |||||
| <nunit xmlout="console-test.xml"> | |||||
| <testassembly name="nunit.tests.dll"/> | |||||
| </nunit> | |||||
| </pre> | |||||
| <p>changes the name of the output file to "console-test.xml" - | |||||
| note that this task will resolve file names relative to the | |||||
| project's base directory, not the current working directory.</p> | |||||
| <h4>Specifying Multiple Assemblies</h4> | |||||
| <pre> | |||||
| <nunit> | |||||
| <testassembly name="assembly1.dll"/> | |||||
| <testassembly name="assembly2.dll"/> | |||||
| <testassembly name="assembly3.dll"/> | |||||
| </nunit> | |||||
| </pre> | |||||
| <hr/> | |||||
| <p align="center">Copyright © 2004 The Apache Software Foundation. All rights Reserved.</p> | |||||
| </body> | |||||
| </html> | |||||
| @@ -0,0 +1,81 @@ | |||||
| <?xml version="1.0"?> | |||||
| <!-- | |||||
| Copyright 2004 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. | |||||
| --> | |||||
| <project name="nunit" basedir="." default="echo" | |||||
| xmlns:dn="antlib:org.apache.tools.ant.taskdefs.optional.dotnet"> | |||||
| <property name="build.dir" value="build"/> | |||||
| <property name="src.dir" location="src"/> | |||||
| <taskdef | |||||
| uri="antlib:org.apache.tools.ant.taskdefs.optional.dotnet" | |||||
| resource="org/apache/tools/ant/taskdefs/optional/dotnet/antlib.xml"> | |||||
| <classpath> | |||||
| <pathelement location="../../../build/lib/dotnet.jar"/> | |||||
| </classpath> | |||||
| </taskdef> | |||||
| <property environment="env"/> | |||||
| <condition property="nunit.found"> | |||||
| <or> | |||||
| <available file="nunit-console.exe" filepath="${env.PATH}"/> | |||||
| <available file="nunit-console.exe" filepath="${env.Path}"/> | |||||
| <available file="nunit-console.exe"/> | |||||
| </or> | |||||
| </condition> | |||||
| <target name="no-assembly"> | |||||
| <dn:nunit/> | |||||
| </target> | |||||
| <target name="compile-pass"> | |||||
| <mkdir dir="${build.dir}"/> | |||||
| <csc destFile="${build.dir}/Pass.dll" | |||||
| targetType="library" references="nunit.framework.dll"> | |||||
| <src dir="${src.dir}" includes="pass.cs"/> | |||||
| </csc> | |||||
| </target> | |||||
| <target name="compile-fail"> | |||||
| <mkdir dir="${build.dir}"/> | |||||
| <csc destFile="${build.dir}/Fail.dll" | |||||
| targetType="library" references="nunit.framework.dll"> | |||||
| <src dir="${src.dir}" includes="fail.cs"/> | |||||
| </csc> | |||||
| </target> | |||||
| <target name="passing-test" depends="compile-pass"> | |||||
| <dn:nunit> | |||||
| <testassembly name="${build.dir}/Pass.dll"/> | |||||
| </dn:nunit> | |||||
| </target> | |||||
| <target name="failing-test" depends="compile-fail"> | |||||
| <dn:nunit> | |||||
| <testassembly name="${build.dir}/Fail.dll"/> | |||||
| </dn:nunit> | |||||
| </target> | |||||
| <target name="failing-test-with-fail" depends="compile-fail"> | |||||
| <dn:nunit failonerror="true"> | |||||
| <testassembly name="${build.dir}/Fail.dll"/> | |||||
| </dn:nunit> | |||||
| </target> | |||||
| <target name="teardown"> | |||||
| <delete dir="${build.dir}"/> | |||||
| </target> | |||||
| </project> | |||||
| @@ -0,0 +1,30 @@ | |||||
| /* | |||||
| * Copyright 2004 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. | |||||
| * | |||||
| */ | |||||
| using System; | |||||
| using NUnit.Framework; | |||||
| [TestFixture] | |||||
| public class FailingTest | |||||
| { | |||||
| [Test] | |||||
| public void Fail() | |||||
| { | |||||
| Assert.IsTrue(false); | |||||
| } | |||||
| } | |||||
| @@ -0,0 +1,30 @@ | |||||
| /* | |||||
| * Copyright 2004 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. | |||||
| * | |||||
| */ | |||||
| using System; | |||||
| using NUnit.Framework; | |||||
| [TestFixture] | |||||
| public class PassingTest | |||||
| { | |||||
| [Test] | |||||
| public void Pass() | |||||
| { | |||||
| Assert.IsTrue(true); | |||||
| } | |||||
| } | |||||
| @@ -0,0 +1,335 @@ | |||||
| /* | |||||
| * Copyright 2004 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. | |||||
| * | |||||
| */ | |||||
| package org.apache.tools.ant.taskdefs.optional.dotnet; | |||||
| import org.apache.tools.ant.BuildException; | |||||
| import org.apache.tools.ant.Task; | |||||
| import org.apache.tools.ant.types.Environment; | |||||
| import org.apache.tools.ant.types.RedirectorElement; | |||||
| import java.io.File; | |||||
| import java.util.ArrayList; | |||||
| import java.util.Iterator; | |||||
| /** | |||||
| * Task to run the NUnit Console test runner. | |||||
| * | |||||
| * @see http://www.nunit.org/ | |||||
| */ | |||||
| public class NUnitTask extends Task { | |||||
| /** | |||||
| * The vm attribute - if given. | |||||
| */ | |||||
| private String vm; | |||||
| /** | |||||
| * Test assemblies. | |||||
| */ | |||||
| private ArrayList testAssemblies = new ArrayList(); | |||||
| /** | |||||
| * The /config argument. | |||||
| */ | |||||
| private File configFile; | |||||
| /** | |||||
| * The /output argument. | |||||
| */ | |||||
| private File out; | |||||
| /** | |||||
| * The /err argument. | |||||
| */ | |||||
| private File err; | |||||
| /** | |||||
| * The /xml argument. | |||||
| */ | |||||
| private File xmlOut; | |||||
| /** | |||||
| * The /transform argument. | |||||
| */ | |||||
| private File transform; | |||||
| /** | |||||
| * The /thread argument. | |||||
| */ | |||||
| private boolean thread = false; | |||||
| /** | |||||
| * The /fixture argument. | |||||
| */ | |||||
| private String fixture; | |||||
| /** | |||||
| * Categories to include. | |||||
| */ | |||||
| private ArrayList includes = new ArrayList(); | |||||
| /** | |||||
| * Categories to exclude. | |||||
| */ | |||||
| private ArrayList excludes = new ArrayList(); | |||||
| /** | |||||
| * The /noshadow argument. | |||||
| */ | |||||
| private boolean noshadow = false; | |||||
| /** | |||||
| * The /labels argument. | |||||
| */ | |||||
| private boolean labels = false; | |||||
| /** | |||||
| * Redirects everything that NUnit wants to send to the console. | |||||
| */ | |||||
| private RedirectorElement redirectorElement; | |||||
| /** | |||||
| * Whether a failure should stop the build. | |||||
| */ | |||||
| private boolean failOnError = false; | |||||
| /** | |||||
| * Support for nested environment variables. | |||||
| */ | |||||
| private Environment env = new Environment(); | |||||
| public NUnitTask() { | |||||
| super(); | |||||
| } | |||||
| /** | |||||
| * Set the name of the executable for the virtual machine. | |||||
| * | |||||
| * @param value the name of the executable for the virtual machine | |||||
| */ | |||||
| public void setVm(String value) { | |||||
| this.vm = value; | |||||
| } | |||||
| /** | |||||
| * Sets the name of the config file. | |||||
| */ | |||||
| public void setConfig(File c) { | |||||
| configFile = c; | |||||
| } | |||||
| /** | |||||
| * The /output argument. | |||||
| */ | |||||
| public void setOut(File out) { | |||||
| this.out = out; | |||||
| } | |||||
| /** | |||||
| * The /err argument. | |||||
| */ | |||||
| public void setError(File err) { | |||||
| this.err = err; | |||||
| } | |||||
| /** | |||||
| * The /xml argument. | |||||
| */ | |||||
| public void setXmlOut(File out) { | |||||
| this.xmlOut = out; | |||||
| } | |||||
| /** | |||||
| * The /transform argument. | |||||
| */ | |||||
| public void setTransform(File transform) { | |||||
| this.transform = transform; | |||||
| } | |||||
| /** | |||||
| * The /thread argument. | |||||
| */ | |||||
| public void setThread(boolean thread) { | |||||
| this.thread = thread; | |||||
| } | |||||
| /** | |||||
| * The /fixture argument. | |||||
| */ | |||||
| public void setFixture(String fixture) { | |||||
| this.fixture = fixture; | |||||
| } | |||||
| /** | |||||
| * The /noshadow argument. | |||||
| */ | |||||
| public void setNoshadow(boolean noshadow) { | |||||
| this.noshadow = noshadow; | |||||
| } | |||||
| /** | |||||
| * The /labels argument. | |||||
| */ | |||||
| public void setLabels(boolean labels) { | |||||
| this.labels = labels; | |||||
| } | |||||
| /** | |||||
| * Whether a failure should stop the build. | |||||
| */ | |||||
| public void setFailOnError(boolean b) { | |||||
| failOnError = b; | |||||
| } | |||||
| /** | |||||
| * Adds a test assembly by name. | |||||
| */ | |||||
| public void addTestAssembly(NamedElement a) { | |||||
| testAssemblies.add(a); | |||||
| } | |||||
| /** | |||||
| * Adds a category to the include list. | |||||
| */ | |||||
| public void addInclude(NamedElement a) { | |||||
| includes.add(a); | |||||
| } | |||||
| /** | |||||
| * Adds a category to the exclude list. | |||||
| */ | |||||
| public void addExclude(NamedElement a) { | |||||
| excludes.add(a); | |||||
| } | |||||
| /** | |||||
| * Add an environment variable to the launched process. | |||||
| * | |||||
| * @param var new environment variable | |||||
| */ | |||||
| public void addEnv(Environment.Variable var) { | |||||
| env.addVariable(var); | |||||
| } | |||||
| /** | |||||
| * Add a <code>RedirectorElement</code> to this task. | |||||
| * | |||||
| * <p>This does not use the <code>out</code> and | |||||
| * <code>error</code> attributes, it only captures NUnits output | |||||
| * that has not been redirected by those attributes.</p> | |||||
| */ | |||||
| public void addConfiguredRedirector(RedirectorElement redirectorElement) { | |||||
| if (this.redirectorElement != null) { | |||||
| throw new BuildException("cannot have > 1 nested <redirector>s"); | |||||
| } else { | |||||
| this.redirectorElement = redirectorElement; | |||||
| } | |||||
| } | |||||
| public void execute() { | |||||
| if (testAssemblies.size() == 0) { | |||||
| throw new BuildException("You must specify at least one test " | |||||
| + "assembly."); | |||||
| } | |||||
| DotNetExecTask exec = DotNetExecTask.getTask(this, vm, | |||||
| "nunit-console.exe", | |||||
| env); | |||||
| Iterator iter = testAssemblies.iterator(); | |||||
| while (iter.hasNext()) { | |||||
| NamedElement a = (NamedElement) iter.next(); | |||||
| exec.createArg().setValue(a.getName()); | |||||
| } | |||||
| if (configFile != null) { | |||||
| exec.createArg().setValue("/config=" | |||||
| + configFile.getAbsolutePath()); | |||||
| } | |||||
| exec.createArg().setValue("/nologo"); | |||||
| if (out != null) { | |||||
| exec.createArg().setValue("/output=" + out.getAbsolutePath()); | |||||
| } | |||||
| if (err != null) { | |||||
| exec.createArg().setValue("/err=" + err.getAbsolutePath()); | |||||
| } | |||||
| if (xmlOut != null) { | |||||
| exec.createArg().setValue("/xml=" + xmlOut.getAbsolutePath()); | |||||
| } | |||||
| if (transform != null) { | |||||
| exec.createArg().setValue("/transform=" | |||||
| + transform.getAbsolutePath()); | |||||
| } | |||||
| if (thread) { | |||||
| exec.createArg().setValue("/thread"); | |||||
| } | |||||
| if (noshadow) { | |||||
| exec.createArg().setValue("/noshadow"); | |||||
| } | |||||
| if (labels) { | |||||
| exec.createArg().setValue("/labels"); | |||||
| } | |||||
| if (fixture != null) { | |||||
| exec.createArg().setValue("/fixture=" + fixture); | |||||
| } | |||||
| if (includes.size() > 0) { | |||||
| StringBuffer sb = new StringBuffer("/include="); | |||||
| iter = includes.iterator(); | |||||
| boolean first = false; | |||||
| while (iter.hasNext()) { | |||||
| if (first) { | |||||
| first = false; | |||||
| } else { | |||||
| sb.append(","); | |||||
| } | |||||
| NamedElement a = (NamedElement) iter.next(); | |||||
| sb.append(a.getName()); | |||||
| } | |||||
| exec.createArg().setValue(sb.toString()); | |||||
| } | |||||
| if (excludes.size() > 0) { | |||||
| StringBuffer sb = new StringBuffer("/exclude="); | |||||
| iter = excludes.iterator(); | |||||
| boolean first = false; | |||||
| while (iter.hasNext()) { | |||||
| if (first) { | |||||
| first = false; | |||||
| } else { | |||||
| sb.append(","); | |||||
| } | |||||
| NamedElement a = (NamedElement) iter.next(); | |||||
| sb.append(a.getName()); | |||||
| } | |||||
| exec.createArg().setValue(sb.toString()); | |||||
| } | |||||
| if (redirectorElement != null) { | |||||
| exec.addConfiguredRedirector(redirectorElement); | |||||
| } | |||||
| exec.setFailonerror(failOnError); | |||||
| exec.execute(); | |||||
| } | |||||
| public static class NamedElement { | |||||
| private String name; | |||||
| public String getName() {return name;} | |||||
| public void setName(String s) {name = s;} | |||||
| } | |||||
| } | |||||
| @@ -31,4 +31,8 @@ | |||||
| name="wix" | name="wix" | ||||
| classname="org.apache.tools.ant.taskdefs.optional.dotnet.WixTask" | classname="org.apache.tools.ant.taskdefs.optional.dotnet.WixTask" | ||||
| /> | /> | ||||
| <taskdef | |||||
| name="nunit" | |||||
| classname="org.apache.tools.ant.taskdefs.optional.dotnet.NUnitTask" | |||||
| /> | |||||
| </antlib> | </antlib> | ||||
| @@ -0,0 +1,79 @@ | |||||
| /* | |||||
| * Copyright 2004 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. | |||||
| * | |||||
| */ | |||||
| package org.apache.tools.ant.taskdefs.optional.dotnet; | |||||
| import org.apache.tools.ant.BuildFileTest; | |||||
| /** | |||||
| * Tests the NUnitTask task. | |||||
| */ | |||||
| public class NUnitTaskTest extends BuildFileTest { | |||||
| /** | |||||
| * Description of the Field | |||||
| */ | |||||
| private final static String TASKDEFS_DIR = "src/etc/testcases/"; | |||||
| /** | |||||
| * Constructor | |||||
| * | |||||
| * @param name testname | |||||
| */ | |||||
| public NUnitTaskTest(String name) { | |||||
| super(name); | |||||
| } | |||||
| /** | |||||
| * The JUnit setup method | |||||
| */ | |||||
| public void setUp() { | |||||
| configureProject(TASKDEFS_DIR + "nunit.xml"); | |||||
| } | |||||
| /** | |||||
| * The teardown method for JUnit | |||||
| */ | |||||
| public void tearDown() { | |||||
| executeTarget("teardown"); | |||||
| } | |||||
| public void testNoAssembly() { | |||||
| expectSpecificBuildException("no-assembly", "no assembly", | |||||
| "You must specify at least one test assembly."); | |||||
| } | |||||
| public void testPass() { | |||||
| if (getProject().getProperty("nunit.found") != null) { | |||||
| expectLogContaining("passing-test", | |||||
| "Tests run: 1, Failures: 0, Not run: 0"); | |||||
| } | |||||
| } | |||||
| public void testFail() { | |||||
| if (getProject().getProperty("nunit.found") != null) { | |||||
| expectLogContaining("failing-test", | |||||
| "Tests run: 1, Failures: 1, Not run: 0"); | |||||
| } | |||||
| } | |||||
| public void testFailOnFail() { | |||||
| if (getProject().getProperty("nunit.found") != null) { | |||||
| expectBuildException("failing-test-with-fail", "test should fail"); | |||||
| } | |||||
| } | |||||
| } | |||||