java—如何使用事件发布器获取cucumber中场景的行号

nlejzf6q  于 2021-06-29  发布在  Java
关注(0)|答案(2)|浏览(273)

我已经在“testcasestarted”上编写了一个事件发布程序。但是,当我试图访问它的位置时,它返回了错误的行号。我正在使用下面的代码和功能文件。
预期行号应该是4,但我得到的值为13
功能文件

Feature: to test a sample test case

  @tc1
  Scenario Outline: sc1
    Given    user has waited for "1" seconds and clicked checkboxes
    |button_id|
    |a        |
    |b        |
    When  user has to enter"<Value>"
    Then validates that the scenarios completes successfully
    Examples:
    |Value    |
    |3        |
    |5        |

代码段

private void EHTestCaseStarted(TestCaseStarted event) {
    String ffPath = event.getTestCase().getUri().getPath();
    String scnType = event.getTestCase().getKeyword();
    Location loc = event.getTestCase().getLocation();
    int scnLine = event.getTestCase().getLocation().getLine();
    int scnCol = event.getTestCase().getLocation().getColumn();

    if (scnType.equalsIgnoreCase("Scenario Outline")) {
        parseGherkin(ffPath, scnLine, scnCol);
    } else {

    }
}
vptzau2j

vptzau2j1#

因为你用的是 Scenario Outline 实际场景由混凝土的线条定义 Example 在大纲中使用。所以行号是正确的。
如果需要场景的父级,可以使用 TestSourceParsed evnet访问测试用例所在的层次结构。

ruyhziif

ruyhziif2#

根据这个应该是 event.getTestCase().getLine() 看看这个。它可能会提供给你(一种开箱即用的)你想要做的事情

相关问题