[Selenium RC-java-1.0.1] How to make TestCase Stop when Assertion Fails

42 views
Skip to first unread message

pebranch

unread,
Mar 30, 2011, 5:07:41 PM3/30/11
to Selenium Users

I am trying to get my testcase to STOP when an assertion FAILS.
I must be missing something(and it's starting to frustrate me!!!).
I am using selenium-remote-control-1.0.3(java)

This is the test i wrote to intentionally make the script fail.
-----------------
|assertEval|javascript{var tmp = "FAIL";tmp}|FFFF|
|storeEval|javascript{window.currentInvoiceId;}|tmp|
|check|getEval|javascript{var tmp = storedVars['tmp'];tmp;}|xxx|
-----------------

I see the following AssertionError posted:
java.lang.AssertionError: Expected "FAIL" but saw "FFFF" instead
at
com.thoughtworks.selenium.SeleneseTestBase.fail(SeleneseTestBase.java:
360)
at
com.thoughtworks.selenium.SeleneseTestBase.assertTrue(SeleneseTestBase.java:
365)
at
com.thoughtworks.selenium.SeleneseTestBase.assertEquals(SeleneseTestBase.java:
193)
at
com.thoughtworks.selenium.SeleneseTestCase.assertEquals(SeleneseTestCase.java:
129)
at
com.neuri.webfixture.PlainSeleniumTest.assertEval(PlainSeleniumTest.java:
1024)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at fitlibrary.closure.MethodClosure.invoke(MethodClosure.java:35)
at fitlibrary.closure.MethodClosure.invokeTyped(MethodClosure.java:
28)
at
fitlibrary.closure.CalledMethodTarget.invokeTyped(CalledMethodTarget.java:
77)
at
fitlibrary.closure.CalledMethodTarget.invokeTyped(CalledMethodTarget.java:
95)
at
fitlibrary.closure.CalledMethodTarget.invokeAndWrap(CalledMethodTarget.java:
358)
at
fitlibrary.traverse.workflow.caller.ActionCaller.run(ActionCaller.java:
37)
at
fitlibrary.traverse.workflow.DoTraverseInterpreter.interpretRow(DoTraverseInterpreter.java:
176)
at
fitlibrary.traverse.workflow.DoTraverseInterpreter.interpretWholeTable(DoTraverseInterpreter.java:
96)
at
fitlibrary.traverse.workflow.DoTraverseInterpreter.interpretWholeTable(DoTraverseInterpreter.java:
89)
at fitlibrary.DoFixture.interpretWholeTable(DoFixture.java:73)
at fitlibrary.suite.InFlowPageRunner.run(InFlowPageRunner.java:27)
at fitlibrary.DoFixture.interpretTables(DoFixture.java:42)
at fit.Fixture.doTables(Fixture.java:79)
at fit.FitServer.process(FitServer.java:81)
at fit.FitServer.run(FitServer.java:56)
at fit.FitServer.main(FitServer.java:41

I expect the test to stop at this point but it goes on to the next
line in the testcase:

|storeEval|javascript{window.currentInvoiceId;}|tmp|
|check|getEval|javascript{var tmp = storedVars['tmp'];tmp;}|xxx|

Am i missing something here?
Please help me figure this out. I don't want to waste time continuing
on with the test when it fails!!

IntermeZZo

unread,
Apr 1, 2011, 3:54:16 AM4/1/11
to Selenium Users
Hi,

1) when you use assertEquals if comprating Strings or whatever not
equals the test will stop immediately.
2) when you use assertTrue tests will continue.

if you want to use assertTrue you must do something like this:

if (assertTrue(COMPARING VALUE)){ test_passed;}
else{test_failed; tearDown();}

Regards,
Reply all
Reply to author
Forward
0 new messages