Cucumber PendingExceprion for test steps in Intellij IDEA

13,991

Remove throw new PendingException(); from your steps.

Share:
13,991
Giymose
Author by

Giymose

I'm automation tester, who loves learn new programming languages for me, like Clojure or Groovy :)

Updated on June 05, 2022

Comments

  • Giymose
    Giymose almost 2 years

    Erly I asked this question about cucumber and java. After correct my project, I checked PendingException in cucumber-junit. I have 2 classes: TestClass.java for working with SoapUI, TestSteps.java for implementation cucumber steps with my code and JUnit Run.java class. This is my code: TestClass.java:

        public class FirstTest {
    private static String xmlFile;
    private static String projectPath;
    
    public FirstTest(String file)
    {
        xmlFile = file;
    }
    //for Then step
    public static void run() throws XmlException, IOException, SoapUIException {
        //add test project
        WsdlProject project = new WsdlProject(getProjectPath());
        //add xml file for test into property
        project.setPropertyValue("File", xmlFile);
        //get TestSuite and TestCase by name
        TestSuite testSuite = project.getTestSuiteByName("Test");
        TestCase testCase = testSuite.getTestCaseByName("Test");
        //run test
        testCase.run(new PropertiesMap(), false);
    
    }
    
    public static String getProjectPath()
    {
        return projectPath = "path";
    }
    

    }

    And this is TestSteps.java class:

        public class TestSteps {
    private FirstTest testClass;
    
    @Given("^I have a file \"(.*?)\"$")
    public void i_have_a_file(String file) throws Throwable {
        testClass = new FirstTest(file);
        throw new PendingException();
    }
    
    @Then("^I want to run case$")
    public void i_want_to_run_case() throws Throwable {
        testClass.run();
        throw new PendingException();
    }
    

    }

    Cucumber feature:

        Scenario: Test
    Given I have a file "path_to_file"
    Then I want to run case
    

    And JUnit Class:

        @RunWith(Cucumber.class)
    @CucumberOptions(format = {"junit:target_junit/cucumber.xml"},
    glue = {"src/com.teststeps.TestSteps"},
    features = {"Feature"},
    dryRun = true,
    strict = true,
    tags = {},
    monochrome = true)
    
    public class RunTest {
    }
    

    If I try run JUnit Class, I checking PendingException:

    cucumber.api.PendingException: TODO: implement me
        at cucumber.runtime.junit.JUnitReporter.addFailure(JUnitReporter.java:134)
        at cucumber.runtime.junit.JUnitReporter.addFailureOrIgnoreStep(JUnitReporter.java:122)
        at cucumber.runtime.junit.JUnitReporter.result(JUnitReporter.java:91)
        at cucumber.runtime.Runtime.runStep(Runtime.java:280)
        at cucumber.runtime.model.StepContainer.runStep(StepContainer.java:44)
        at cucumber.runtime.model.StepContainer.runSteps(StepContainer.java:39)
        at cucumber.runtime.model.CucumberScenario.run(CucumberScenario.java:48)
        at cucumber.runtime.junit.ExecutionUnitRunner.run(ExecutionUnitRunner.java:91)
        at cucumber.runtime.junit.FeatureRunner.runChild(FeatureRunner.java:63)
        at cucumber.runtime.junit.FeatureRunner.runChild(FeatureRunner.java:18)
        at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
        at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
        at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
        at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
        at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
        at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
        at cucumber.runtime.junit.FeatureRunner.run(FeatureRunner.java:70)
        at cucumber.api.junit.Cucumber.runChild(Cucumber.java:93)
        at cucumber.api.junit.Cucumber.runChild(Cucumber.java:37)
        at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
        at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
        at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
        at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
        at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
        at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
        at cucumber.api.junit.Cucumber.run(Cucumber.java:98)
        at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
        at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:74)
        at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:211)
        at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:67)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)
    

    But I just implemented this steps in my java files. In what direction to look? Why can I check this exception? UPDATE: Try this code in Eclipse too, it dosen't work. Somebody know reasons? UPD 2: Edit descriptions UPD 3: Recreate project help