Assertion fails without exiting the use case, providing settlement method settlement assertion
Public classSoftassertextendsAssertion {PrivateWebdriver Driver; Private FinalString Screenshot_path =system.getproperty ("User.dir") + "/target/testreport/screenshot/"; PublicSoftassert (webdriver driver) { This. driver=driver; } PrivateMap<assertionerror, iassert> m_errors =Maps.newlinkedhashmap (); PrivateList<string> screenshotlist =NewArraylist<>(); /*** Override method, assertion failure does not exit use case, join failed *@parama*/@Override Public voidExecuteassert (Iassert a) {Try{A.doassert (); } Catch(Assertionerror ex) {onassertfailure (A, ex); M_errors.put (ex, a); Basisutil util=NewBasisutil (); Screenshotlist.add (Util.getscreenshot (Driver, Screenshot_path)); } } /*** Settlement*/ Public voidAssertall () {if(!M_errors.isempty ()) {StringBuilder SB=NewStringBuilder ("The following asserts failed:\n"); BooleanFirst =true; for(Map.entry<assertionerror, iassert>Ae:m_errors.entrySet ()) { if(first) { first=false; } Else{sb.append (", "); } sb.append (Ae.getkey (). GetMessage ()); } Throw NewAssertionerror (sb.tostring ()); } }}
TestNG Assertion class Overrides