Author: bodewig Date: Thu Sep 21 12:09:08 2006 New Revision: 448635 URL: http://svn.apache.org/viewvc?view=rev&rev=448635 Log: Add errorProperty to <nunit>, PR 40552
Modified: ant/antlibs/dotnet/trunk/docs/nunit.html ant/antlibs/dotnet/trunk/src/etc/testcases/nunit.xml ant/antlibs/dotnet/trunk/src/main/org/apache/ant/dotnet/DotNetExecTask.java ant/antlibs/dotnet/trunk/src/main/org/apache/ant/dotnet/NUnitTask.java ant/antlibs/dotnet/trunk/src/tests/junit/org/apache/ant/dotnet/NUnitTaskTest.java Modified: ant/antlibs/dotnet/trunk/docs/nunit.html URL: http://svn.apache.org/viewvc/ant/antlibs/dotnet/trunk/docs/nunit.html?view=diff&rev=448635&r1=448634&r2=448635 ============================================================================== --- ant/antlibs/dotnet/trunk/docs/nunit.html (original) +++ ant/antlibs/dotnet/trunk/docs/nunit.html Thu Sep 21 12:09:08 2006 @@ -100,6 +100,13 @@ indicating an error or failure.</td> <td align="center">No - defaults to false.</td> </tr> + <tr> + <td valign="top">errorProperty</td> + <td valign="top">Name of the Ant property to set if one of the + tests fails/causes an error. Only useful if the failOnError + attribute is set to false.</td> + <td align="center">No.</td> + </tr> </table> <h3>Parameters specified as nested elements</h3> Modified: ant/antlibs/dotnet/trunk/src/etc/testcases/nunit.xml URL: http://svn.apache.org/viewvc/ant/antlibs/dotnet/trunk/src/etc/testcases/nunit.xml?view=diff&rev=448635&r1=448634&r2=448635 ============================================================================== --- ant/antlibs/dotnet/trunk/src/etc/testcases/nunit.xml (original) +++ ant/antlibs/dotnet/trunk/src/etc/testcases/nunit.xml Thu Sep 21 12:09:08 2006 @@ -52,7 +52,7 @@ </target> <target name="passing-test" depends="compile-pass"> - <dn:nunit> + <dn:nunit errorProperty="nunit.failed"> <testassembly name="${build.dir}/Pass.dll"/> </dn:nunit> </target> @@ -65,6 +65,12 @@ <target name="failing-test-with-fail" depends="compile-fail"> <dn:nunit failonerror="true"> + <testassembly name="${build.dir}/Fail.dll"/> + </dn:nunit> + </target> + + <target name="failing-test-errorproperty" depends="compile-fail"> + <dn:nunit errorProperty="nunit.failed"> <testassembly name="${build.dir}/Fail.dll"/> </dn:nunit> </target> Modified: ant/antlibs/dotnet/trunk/src/main/org/apache/ant/dotnet/DotNetExecTask.java URL: http://svn.apache.org/viewvc/ant/antlibs/dotnet/trunk/src/main/org/apache/ant/dotnet/DotNetExecTask.java?view=diff&rev=448635&r1=448634&r2=448635 ============================================================================== --- ant/antlibs/dotnet/trunk/src/main/org/apache/ant/dotnet/DotNetExecTask.java (original) +++ ant/antlibs/dotnet/trunk/src/main/org/apache/ant/dotnet/DotNetExecTask.java Thu Sep 21 12:09:08 2006 @@ -20,6 +20,7 @@ import org.apache.tools.ant.BuildException; import org.apache.tools.ant.Task; +import org.apache.tools.ant.taskdefs.Execute; import org.apache.tools.ant.taskdefs.ExecTask; import org.apache.tools.ant.taskdefs.condition.Os; import org.apache.tools.ant.types.Environment; @@ -49,6 +50,13 @@ private String vm = Os.isFamily("windows") ? MS_VM : "mono"; /** + * Name of property to set if execution fails. + * + * @since 1.0 Beta 2 + */ + private String errorProperty; + + /** * Empty Constructor. */ public DotNetExecTask() { @@ -75,6 +83,19 @@ } /** + * Sets the name of the property to set if execution fails. + * + * <p>Not exposed as an attribute of the task, it just supports + * tasks like <nunit> which delegate to instances of this + * class.</p> + * + * @since 1.0 Beta 2 + */ + public void internalSetErrorProperty(String name) { + errorProperty = name; + } + + /** * Do the work. * * @throws BuildException if executable is empty or <exec> @@ -86,6 +107,19 @@ } setupCommandline(); super.execute(); + } + + /** + * Overridden to support the error-property handling required by + * NUnit, NAnt and friends. + * + * @since 1.0 Beta 2 + */ + protected void maybeSetResultPropertyValue(int result) { + if (errorProperty != null && Execute.isFailure(result)) { + getProject().setNewProperty(errorProperty, String.valueOf(true)); + } + super.maybeSetResultPropertyValue(result); } /** Modified: ant/antlibs/dotnet/trunk/src/main/org/apache/ant/dotnet/NUnitTask.java URL: http://svn.apache.org/viewvc/ant/antlibs/dotnet/trunk/src/main/org/apache/ant/dotnet/NUnitTask.java?view=diff&rev=448635&r1=448634&r2=448635 ============================================================================== --- ant/antlibs/dotnet/trunk/src/main/org/apache/ant/dotnet/NUnitTask.java (original) +++ ant/antlibs/dotnet/trunk/src/main/org/apache/ant/dotnet/NUnitTask.java Thu Sep 21 12:09:08 2006 @@ -110,6 +110,13 @@ private boolean failOnError = false; /** + * Name of property to set if a test fails. + * + * @since 1.0 Beta 2 + */ + private String errorProperty; + + /** * Support for nested environment variables. */ private Environment env = new Environment(); @@ -198,6 +205,15 @@ } /** + * Name of property to set if a test fails. + * + * @since 1.0 Beta 2 + */ + public void setErrorProperty(String name) { + errorProperty = name; + } + + /** * Adds a test assembly by name. */ public void addTestAssembly(NamedElement a) { @@ -324,6 +340,7 @@ exec.addConfiguredRedirector(redirectorElement); } exec.setFailonerror(failOnError); + exec.internalSetErrorProperty(errorProperty); exec.execute(); } Modified: ant/antlibs/dotnet/trunk/src/tests/junit/org/apache/ant/dotnet/NUnitTaskTest.java URL: http://svn.apache.org/viewvc/ant/antlibs/dotnet/trunk/src/tests/junit/org/apache/ant/dotnet/NUnitTaskTest.java?view=diff&rev=448635&r1=448634&r2=448635 ============================================================================== --- ant/antlibs/dotnet/trunk/src/tests/junit/org/apache/ant/dotnet/NUnitTaskTest.java (original) +++ ant/antlibs/dotnet/trunk/src/tests/junit/org/apache/ant/dotnet/NUnitTaskTest.java Thu Sep 21 12:09:08 2006 @@ -61,6 +61,7 @@ if (getProject().getProperty("nunit.found") != null) { expectLogContaining("passing-test", "Tests run: 1, Failures: 0, Not run: 0"); + assertNull(getProject().getProperty("nunit.failed")); } } @@ -74,6 +75,12 @@ public void testFailOnFail() { if (getProject().getProperty("nunit.found") != null) { expectBuildException("failing-test-with-fail", "test should fail"); + } + } + + public void testFailWithErrorProperty() { + if (getProject().getProperty("nunit.found") != null) { + expectPropertySet("failing-test-errorproperty", "nunit.failed"); } } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]