Currently, I am writing the automation testing using java and selenium rc.
I would like to verify all the contents present on the user interface, the function is ie below:
public String UITest() throws IOException { String result="Test Start<br />"; try { openfile(1); for (String url : uiMaps.keySet()) { selenium.open(url); for (String item : uiMaps.get(url)) { assertEquals(url+" check: " + item, true,selenium.isTextPresent(item)); result+=url+" check: " + item+" : OK<br />"; } } } catch (AssertionError e) { result+=e.getMessage(); } result+="Test finished<br />"; return result; }
The function is supposed to return a String containing information about the testing. However, the function stopped once an assertion error happened.
Is there a way to ignore the failure and keep executing all the assertion verifications?
Advertisement
Answer
You could use a JUnit 4 error collector rule:
The ErrorCollector rule allows execution of a test to continue after the first problem is found (for example, to collect all the incorrect rows in a table, and report them all at once)
For example you can write a test like this.
public static class UsesErrorCollectorTwice { @Rule public ErrorCollector collector= new ErrorCollector(); @Test public void example() { String x = [..] collector.checkThat(x, not(containsString("a"))); collector.checkThat(y, containsString("b")); } }
The error collector uses hamcrest Matchers. Depending on your preferences this is positive or not.