java - Intellij IDEA 中测试步骤的 cucumber 挂起异常

标签 java intellij-idea cucumber cucumber-jvm cucumber-junit

Erly 我问了this关于 cucumber 和java的问题。 更正我的项目后,我检查了 cucumber-junit 中的 PendingException。我有 2 个类:用于使用 SoapUI 的 TestClass.java,用于使用我的代码实现 cucumber 步骤的 TestSteps.java 和 JUnit Run.java 类。 这是我的代码: 测试类.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";
}

这是 TestSteps.java 类:

    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 特点:

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

和 JUnit 类:

    @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 {
}

如果我尝试运行 JUnit 类,我会检查 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)

但我只是在我的 java 文件中实现了这个步骤。往哪个方向看?为什么我可以检查这个异常? 更新: 也在 Eclipse 中尝试此代码,它不起作用。 有人知道原因吗? UPD 2:编辑描述 UPD 3:重新创建项目帮助

最佳答案

从您的步骤中删除 throw new PendingException();

关于java - Intellij IDEA 中测试步骤的 cucumber 挂起异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28824469/

相关文章:

java - Xtext解析规则不完整

java - 如何检查一个ArrayList的元素是否都包含在另一个ArrayList中

java - 使用 StaticClass.staticValue 后是否保留或处置静态类

Java @RunWith 在 Intellij 中无法运行

android - 如何开始将 Git 与 Android Studio 集成?

protractor - 在 Protractor 中使用 "is not a thenable"时获取 "eventually"消息

cucumber - 失败后继续运行 cucumber 步骤

ruby - cucumber :后台失败仍然以代码 0 退出

java - 用于将字符序列转换为字符串的流的替代方案

android-studio - 结构上替换参数名称以以下开头的方法