2

我继承了一个 Java / Maven / Cucumber 项目。我对黄瓜相当陌生。

在其中一个文件夹中,我有一个像这样的课程...

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 插件,但不知道如何使用它。

问题二。

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

谢谢

4

2 回答 2

3

Cucumber Eclipse 插件为您提供了两件事:

  • IDE 语法着色/格式化支持
  • 能够在没有 JUnit“运行器”的情况下直接右键单击并运行功能

空手道是幕后的 Java,因此您可以调试和设置断点,但它可能不像您期望的那样无缝。在 0.6.0 中,您可以选择在每个测试步骤之前/之后运行的空手道代码中放置一个条件断点 -参见屏幕截图

因此,正如您正确指出的那样,打印到日志可能是处理复杂测试脚本的最有效方法。请参考print关键字 - 这正是您正在寻找的。

还有2点:

  • 可选的 HTML 报告包括所有HTTP 请求/响应日志- 这对于排除测试故障非常有用。
  • 我希望空手道 UI(目前处于 alpha 阶段)能够尽快稳定并成为调试的最佳选择,如果可以,请提交反馈并做出贡献。

编辑:我们现在拥有具有一流调试支持的 Visual Studio Code IDE 支持:https ://github.com/intuit/karate/wiki/IDE-Support#vs-code-karate-plugin

于 2017-09-18T13:18:33.097 回答
2

根据此处的文档,目前调试空手道步骤的最佳方法是使用 Visual Studio Code 开发测试和VS Code Karate Plugin进行调试。

Visual Studio Code 是免费的,基于开源构建,可在包括 mac/linux 和 windows 在内的所有平台上运行。

请注意这一点

空手道 UI 已停用,并且在 0.9.5 之后不再可用!请改用 VS Code 调试支持。

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

于 2020-03-10T02:16:54.713 回答