instaclick / gherkincs
Gherkin 的代码嗅探器和语义分析器
v1.2.0
2013-11-28 22:27 UTC
Requires
- php: >=5.3.6
- twig/twig: 1.*
Requires (Dev)
- instaclick/coding-standard: dev-master
- instaclick/object-calisthenics-sniffs: dev-master
- instaclick/symfony2-coding-standard: dev-remaster
- phpunit/phpunit: >=3.7.x-dev
- squizlabs/php_codesniffer: 1.5.0RC2
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
文件的 require
或 require-dev
部分添加 "instaclick/gherkincs": "dev-master"
可执行文件: vendor/bin/cuke
.
用法
将 cuke
定义为 cuke-standalone
或 vendor/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
。