[Webtest] groovy asserts in macrodefs

Sergey Batishchev webtest@lists.canoo.com
Wed, 5 Jul 2006 07:13:06 -0500


Hi,
we recently started WebTest canoo (R_1353) and discovered one unusual piece 
of behavior.

When you do groovy "asserts" from macrodefs, they cause test error, not 
failure. This makes report not very readable and stops you from doing 
"<not>" when you want to build your own groovy steps...

As I am really new to this, can you explain if this is an issue or we just 
need to "fail" steps in a different way here from within the groovy?

For example, the following passes just fine:
...<not><groovy>System.out.println("Test1");assert 1==3;</groovy></not>...

While the following fails with exception:
            <macrodef name="sampleMacro">
                        <sequential>
                                    <groovy>
                                                System.out.println("Test2");assert 
1==3;
                                    </groovy>
                        </sequential>
            </macrodef>
...
<not><groovy>System.out.println("Test1");assert 1==3;</groovy></not>
...

Thanks in advance! Sergey.

PS: Actual exception is below:
com.canoo.webtest.engine.StepExecutionException: Unexpected exception 
caught: C:\Canoo WebTest\tests\FGI Load Tracking\build.xml:26: The following 
error occurred while executing this line:
C:\Canoo WebTest\tests\FGI Load Tracking\build.xml:18: 
com.canoo.webtest.engine.StepFailedException: Assertion failed within groovy 
code:
    System.out.println("Test2");assert 1==3;
   , Step: GroovyStep at C:\Canoo WebTest\tests\FGI Load 
Tracking\build.xml:18:  with (taskName="groovy"), Step: AntWrapper at  with 
()
 at com.canoo.webtest.steps.Step.handleUnexpectedException(Step.java:457)
 at com.canoo.webtest.steps.Step.execute(Step.java:133)
 at org.apache.tools.ant.Task.perform(Task.java:364)
 at com.canoo.webtest.steps.StepUtil.performStanza(StepUtil.java:34)
 at 
com.canoo.webtest.steps.AbstractStepContainer.executeContainedStep(AbstractStepContainer.java:150)
 at com.canoo.webtest.steps.control.NotStep.doExecute(NotStep.java:46)
 at com.canoo.webtest.steps.Step.execute(Step.java:130)
 at org.apache.tools.ant.Task.perform(Task.java:364)
 at 
com.canoo.webtest.ant.TestStepSequence.executeSteps(TestStepSequence.java:58)
 at 
com.canoo.webtest.ant.TestStepSequence.doExecute(TestStepSequence.java:39)
 at com.canoo.webtest.steps.Step.execute(Step.java:130)
 at org.apache.tools.ant.Task.perform(Task.java:364)
 at com.canoo.webtest.ant.WebtestTask.execute(WebtestTask.java:152)
 at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
 at org.apache.tools.ant.Task.perform(Task.java:364)
 at org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:64)
 at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
 at org.apache.tools.ant.Task.perform(Task.java:364)
 at 
org.apache.tools.ant.taskdefs.MacroInstance.execute(MacroInstance.java:378)
 at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
 at org.apache.tools.ant.Task.perform(Task.java:364)
 at org.apache.tools.ant.Target.execute(Target.java:341)
 at org.apache.tools.ant.Target.performTasks(Target.java:369)
 at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1216)
 at org.apache.tools.ant.Project.executeTarget(Project.java:1185)
 at 
org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:40)
 at org.apache.tools.ant.Project.executeTargets(Project.java:1068)
 at org.apache.tools.ant.Main.runBuild(Main.java:668)
 at org.apache.tools.ant.Main.startAnt(Main.java:187)
 at org.apache.tools.ant.launch.Launcher.run(Launcher.java:246)
 at org.apache.tools.ant.launch.Launcher.main(Launcher.java:67)
Caused by: C:\Canoo WebTest\tests\FGI Load Tracking\build.xml:26: The 
following error occurred while executing this line:
C:\Canoo WebTest\tests\FGI Load Tracking\build.xml:18: 
com.canoo.webtest.engine.StepFailedException: Assertion failed within groovy 
code:
    System.out.println("Test2");assert 1==3;
   , Step: GroovyStep at C:\Canoo WebTest\tests\FGI Load 
Tracking\build.xml:18:  with (taskName="groovy")
 at 
org.apache.tools.ant.ProjectHelper.addLocationToBuildException(ProjectHelper.java:539)
 at 
org.apache.tools.ant.taskdefs.MacroInstance.execute(MacroInstance.java:380)
 at org.apache.tools.ant.Task.perform(Task.java:364)
 at com.canoo.webtest.extension.AntWrapper.doExecute(AntWrapper.java:85)
 at com.canoo.webtest.steps.Step.execute(Step.java:130)
 ... 29 more
Caused by: C:\Canoo WebTest\tests\FGI Load Tracking\build.xml:18: 
com.canoo.webtest.engine.StepFailedException: Assertion failed within groovy 
code:
    System.out.println("Test2");assert 1==3;
   , Step: GroovyStep at C:\Canoo WebTest\tests\FGI Load 
Tracking\build.xml:18:  with (taskName="groovy")
 at org.apache.tools.ant.Task.perform(Task.java:373)
 at org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:64)
 at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
 at org.apache.tools.ant.Task.perform(Task.java:364)
 at 
org.apache.tools.ant.taskdefs.MacroInstance.execute(MacroInstance.java:378)
 ... 32 more
Caused by: com.canoo.webtest.engine.StepFailedException: Assertion failed 
within groovy code:
    System.out.println("Test2");assert 1==3;
   , Step: GroovyStep at C:\Canoo WebTest\tests\FGI Load 
Tracking\build.xml:18:  with (taskName="groovy")
 at 
com.canoo.webtest.extension.groovy.GroovyInvoker.doExecute(GroovyInvoker.java:49)
 at 
com.canoo.webtest.extension.groovy.GroovyStep.doExecute(GroovyStep.java:27)
 at com.canoo.webtest.steps.Step.execute(Step.java:130)
 at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
 at org.apache.tools.ant.Task.perform(Task.java:364)
 ... 36 more