【问题标题】:Call a karate feature, which include another call inside呼叫空手道功能,其中包括内部的另一个呼叫
【发布时间】:2019-07-08 14:49:12
【问题描述】:

我正在尝试调用一个功能文件,该文件也在内部调用另一个功能文件。我正在调用的功能在另一个目录中。 因此,当我执行该场景时,它正在寻找错误的位置。

这是一个例子:

-scenarios
--directoryA
---feature1
---feature2
--directoryB
---feature3
Feature: feature2

  Scenario: scenario2
    * url testUrl
    * def testCall = call read('feature1.feature')

    Given request { test: 'test' }
    When method post
    Then status 201
Feature: feature3

   Scenario: scenario3
   * url testUrl
   * def testCall = call read('classpath:scenarios/directoryA/feature2.feature')

   Given request { test: 'test' }
   When method post
   Then status 201

执行功能3后我得到的错误:

feature2.feature:9 - javascript evaluation failed: read('feature1.feature'), java.io.FileNotFoundException: /Users/svetoslavlazarov/project/src/test/java/scenarios/directoryB/feature1.feature (No such file or directory)

这里的问题是对 feature1 的调用在错误的目录中。 它应该查看目录A,而不是目录B。 但是,如果我单独执行scenario2,那就没问题了。

你能帮我解决这个问题吗? 谢谢。

【问题讨论】:

    标签: karate


    【解决方案1】:

    试试这个:

    * def testCall = call read('this:feature1.feature')
    

    【讨论】:

    • 当我添加它时它可以工作。感谢您的回答,彼得托马斯!您能否提供一些见解,这在这种情况下是如何工作的? :)
    • @SolarField this 实际上是一个未记录的功能,因为我相信你不应该做太多的嵌套功能调用:) this 意味着它是相对于“当前”功能文件。
    • @Adrien 它应该
    • 减少代码重复真的被认为是一件坏事吗?干燥。
    • @KeithTyler 是的 - 特别是在测试自动化的背景下:stackoverflow.com/a/54126724/143475
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-03
    • 1970-01-01
    • 1970-01-01
    • 2012-06-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多