如何通过黄瓜空手道项目进行调试

How to debug through a cucumber karate project

我继承了一个Java / Maven / Cucumber 项目。我是 Cucumber 的新手。

在其中一个文件夹中,我有一个这样的 class...

import com.intuit.karate.junit4.Karate;
import org.junit.runner.RunWith;

@RunWith(Karate.class)
public class RoadsRunner {

}

然后在同一个子目录/包中我有一个 .feature 文件。 有很多场景。

Feature: Check transaction
  Background:
    * url apiHost + '/api/v1'
    * configure headers = {'X-TransactionID': '#(Math.random().toString())' }

    Scenario: Get Classes
      # get classes
      Given path '/myUrl/classes'
      And param processName = 'myProcess'
      When method get
      Then status 200

问题一

我正在使用 Eclipse。有没有一种方法可以像调试 Java 应用程序一样通过测试进行调试?

我自己下载了 Cucumber Eclipse 插件,但不太清楚如何使用它。

问题二

在不使用自定义插件进行调试的情况下,是否有任何我可以添加到场景中以打印额外调试信息的内容。

谢谢

Cucumber Eclipse plugin 给你两件事:

  • IDE 语法着色/格式支持
  • 能够在没有 JUnit 的情况下直接右键单击和 运行 功能 "runner"

空手道 Java 在幕后进行,因此您可以调试和设置断点,但它可能不像您预期​​的那样无缝。在 0.6.0 中,您可以选择在每个测试步骤之前/之后 运行s 的空手道代码中放置一个条件断点 - see screen-shot.

因此,正如您所说的那样,打印到日志可能是处理复杂测试脚本的最有效方法。请参考 print 关键字 - 这正是您要查找的内容。

还有2分:

  • 可选的 HTML 报告包括所有 HTTP request / response logs - 这对于测试故障排除非常有用。
  • 我希望 Karate UI(目前处于 alpha 阶段)尽快变得稳定并成为调试的最佳选择,如果可以的话请提交反馈并做出贡献。

编辑:我们现在有了 Visual Studio 代码 IDE 支持和第一个 class 调试支持:https://github.com/intuit/karate/wiki/IDE-Support#vs-code-karate-plugin

根据documentation here, At this moment best way to debug Karate Steps is using Visual Studio Code for developing tests and VS Code Karate Plugin进行调试。

Visual Studio 代码是免费的,建立在开源基础上,可在所有平台上运行,包括 mac/linux 和 windows。

Please note this

The Karate UI has been retired and is not available in 0.9.5 onwards ! Use the VS Code Debug Support instead.

根据 Peter Thomas 的评论,Eclipse/IntelliJ 也可能支持调试,但我在那里找不到任何开发。