Jump to content
We've recently updated our Privacy Statement, available here ×
  • io.cucumber.testng.UndefinedStepException when a step has braces


    When there are braces included in the cucumber step title for a word and if we miss double backward slashes in the step definition then we end up with UndefinedStepException 

    This exception we generally, see when won't implement the glue code.


    For this example, I had typed the @And annotation with step name and noticed that braces should be double escaped. 

    For example, in below step (PR) should be given with double backward slashes  that is \\(PR) in the glue code. 

    And Search for Product (PR) and navigate to Product Edit page

    Step definition: 
    @Then("Search for Product \\(PR) and navigate to Product Edit page")public void search_for_product_pr_and_navigate_to_product_edit_page() {    // Write code here that turns the phrase above into concrete actions    throw new io.cucumber.java.PendingException();}

    io.cucumber.testng.UndefinedStepException

    at io.cucumber.core.runtime.TestCaseResultObserver.assertTestCasePassed(TestCaseResultObserver.java:69)	at io.cucumber.testng.TestCaseResultObserver.assertTestCasePassed(TestCaseResultObserver.java:23)	at io.cucumber.testng.TestNGCucumberRunner.lambda$runScenario$1(TestNGCucumberRunner.java:133)	at io.cucumber.core.runtime.CucumberExecutionContext.lambda$runTestCase$3(CucumberExecutionContext.java:110)	at io.cucumber.core.runtime.RethrowingThrowableCollector.executeAndThrow(RethrowingThrowableCollector.java:23)	at io.cucumber.core.runtime.CucumberExecutionContext.runTestCase(CucumberExecutionContext.java:110)	at io.cucumber.testng.TestNGCucumberRunner.runScenario(TestNGCucumberRunner.java:129)	at io.cucumber.testng.AbstractTestNGCucumberTests.runScenario(AbstractTestNGCucumberTests.java:35)	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)	at java.base/java.lang.reflect.Method.invoke(Method.java:568)	at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:134)	at org.testng.internal.TestInvoker.invokeMethod(TestInvoker.java:597)	at org.testng.internal.TestInvoker.invokeTestMethod(TestInvoker.java:173)	at org.testng.internal.MethodRunner.runInSequence(MethodRunner.java:46)	at org.testng.internal.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:816)	at org.testng.internal.TestInvoker.invokeTestMethods(TestInvoker.java:146)	at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:146)	at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:128)	at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)	at org.testng.TestRunner.privateRun(TestRunner.java:766)	at org.testng.TestRunner.run(TestRunner.java:587)	at org.testng.SuiteRunner.runTest(SuiteRunner.java:384)	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:378)	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:337)	at org.testng.SuiteRunner.run(SuiteRunner.java:286)	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:53)	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:96)	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1187)	at org.testng.TestNG.runSuitesLocally(TestNG.java:1109)	at org.testng.TestNG.runSuites(TestNG.java:1039)	at org.testng.TestNG.run(TestNG.java:1007)	at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:115)	at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)	at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)



    User Feedback

    Recommended Comments

    There are no comments to display.



    Guest
    This is now closed for further comments

×
×
  • Create New...