Class CustomSoftAssert

java.lang.Object
org.testng.asserts.Assertion
org.testng.asserts.SoftAssert
com.shaft.validation.internal.CustomSoftAssert
All Implemented Interfaces:
org.testng.asserts.IAssertLifecycle

public class CustomSoftAssert extends org.testng.asserts.SoftAssert
Enhanced SoftAssert implementation that provides clickable stack traces for failed assertions. This improves the developer experience when debugging test failures in IDEs and CI logs.
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
     
    void
     
    static String
    Gets the formatted failure message with clickable stack trace for a given AssertionError.
    void
    onAssertFailure(org.testng.asserts.IAssert<?> assertCommand, AssertionError ex)
     
    void
    setRootPackage(String rootPackage)
    Allows configuring the root package used when filtering stack trace elements.

    Methods inherited from class org.testng.asserts.SoftAssert

    assertAll

    Methods inherited from class org.testng.asserts.Assertion

    assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEqualsNoOrder, assertEqualsNoOrder, assertFalse, assertFalse, assertNotEquals, assertNotEquals, assertNotEquals, assertNotEquals, assertNotEquals, assertNotEquals, assertNotEquals, assertNotEquals, assertNotEquals, assertNotEquals, assertNotEquals, assertNotEquals, assertNotEquals, assertNotEquals, assertNotEquals, assertNotEquals, assertNotEquals, assertNotEquals, assertNotEquals, assertNotEquals, assertNotNull, assertNotNull, assertNotSame, assertNotSame, assertNull, assertNull, assertSame, assertSame, assertTrue, assertTrue, executeAssert, fail, fail, fail, onAfterAssert, onAssertSuccess, onBeforeAssert

    Methods inherited from class Object

    equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • CustomSoftAssert

      public CustomSoftAssert()
  • Method Details

    • setRootPackage

      public void setRootPackage(String rootPackage)
      Allows configuring the root package used when filtering stack trace elements.
      Parameters:
      rootPackage - the root package prefix (e.g., "testPackage", "tests", "com.shaft")
    • onAssertFailure

      public void onAssertFailure(org.testng.asserts.IAssert<?> assertCommand, AssertionError ex)
      Specified by:
      onAssertFailure in interface org.testng.asserts.IAssertLifecycle
      Overrides:
      onAssertFailure in class org.testng.asserts.Assertion
    • assertAll

      public void assertAll()
      Overrides:
      assertAll in class org.testng.asserts.SoftAssert
    • clearFailures

      public void clearFailures()
    • formatFailureWithStackTrace

      public static String formatFailureWithStackTrace(AssertionError ex, String rootPackage)
      Gets the formatted failure message with clickable stack trace for a given AssertionError. This method can be used independently to format stack traces. Uses standard Java stack trace format: at package.Class.method(File.java:lineNumber) The stack trace line starts with "at " on its own line for maximum IDE/CI clickability.
      Parameters:
      ex - The AssertionError to format
      rootPackage - The root package name to filter stack trace elements (e.g., "testPackage", "tests", "com.shaft")
      Returns:
      Formatted failure message with clickable stack trace, or null if no matching stack element found