instaclick/gherkincs

Gherkin 的代码嗅探器和语义分析器

v1.2.0 2013-11-28 22:27 UTC

This package is not auto-updated.

Last update: 2024-09-09 14:39:51 UTC


README

由 Juti Noppornpitak 编写

依赖项

  • twig (dev-master, 用于生成 HTML 报告的必需依赖项)

安装

独立

在 Gherkin CS 的 composer.json 所在的根目录下,

常规安装:运行 composer.phar install

开发安装:运行 composer.phar install --dev

可执行文件: cuke-standalone.

Composer 与 Packagist

安装:在项目的 composer.json 文件的 requirerequire-dev 部分添加 "instaclick/gherkincs": "dev-master"

可执行文件: vendor/bin/cuke.

用法

cuke 定义为 cuke-standalonevendor/bin/cuke

cuke [--jcs <directory_to_put_report>] [--html <directory_to_put_reports>] <configuration_file_path> <directory_path_to_scan>

其中 --html 用于生成 HTML 格式的报告集,而 --jcs 用于生成 Jenkins/Hudson CI 的 checkstyle 格式报告。

请注意

  • 默认情况下,报告将在标准输出上显示,
  • 如果同时提供了 --jcs--html,则将使用 --html

例如,

cuke --jcs darkside.xml config.xml jedi/

可用的分析器

语义分析器

上下文流

此分析器首先检查以下模式中给定的给定-当-然后的上下文流(前提条件-操作-断言):

Precondition
  -> Continuation (as precondition)
  -> Action
  -> Assertion

Action
  -> Continuation (as action)
  -> Assertion

Assertion
  -> Continuation (as assertion)
  -> Precondition
  -> Action

语义质量

它还断言其中一个条件:

  • 包含 "click"、"fill"、"follow" 或 "select" 的任何上下文都是操作,
  • 包含 "should" 或 "must" 的任何上下文都是断言。

当一个上下文不满足两个或更多条件时,分析器将其视为异常(并且不发出警告)。

代码风格检查器

此分析器检查以下内容:

  • 不使用制表符字符
  • 缩进宽度保持一致,默认宽度为 4 个空格
  • 不存在 尾随空格
  • 功能没有 前导空格(没有缩进),
  • 背景、场景和场景轮廓恰好有一个缩进级别,
  • 前提条件、操作、断言和延续恰好有两个缩进级别,
  • 表格数据恰好有三个缩进级别,
  • 标签行最多有一个缩进级别,
  • 非表格数据上下文中出现额外的空格(两个或多个空白字符)。

Instaclick 的代码风格检查器

此分析器检查是否任何标签的名称必须

  • @ 开始,
  • 以字母数字字符开始和结束,
  • 仅使用连字符 ("-"),
  • 小写。

编写自定义分析器

所有分析器都必须实现 IC\Gherkinics\Analyzer\AnalyzerInterface