lucatume / codeception-steppify
从 Codeception 模块生成 Gherkin 步骤。
Requires
- codeception/codeception: >=2.2
This package is auto-updated.
Last update: 2024-09-21 22:46:44 UTC
README
Steppify
从 Codeception 模块生成 Gherkin 步骤。
安装
使用 Composer 安装此包
composer require --dev lucatume/codeception-steppify
然后根据 Codeception 文档 在项目中添加命令
extensions: commands: [tad\Codeception\Command\Steppify]
用法
该命令将生成可用于 Codeception 测试类中的 trait,这些 trait 可由 codeception 模块生成。
例如,我可能想生成 Gherkin 步骤,以便在 Gherkin 功能中使用 Codeception 自有的 [PhpBrowser](!g codeception PhpBrowser 模块) 模块方法
codecept gherkin:steppify PhpBrowser
该命令将在 tests _support/_generated
文件夹中生成 PhpBrowserGherkinSteps.php
,一个 PHP trait
文件。要开始使用新方法,只需在 suite Tester
类中添加对 PhpBrowserSteps
trait 的 use
语句即可
<?php /** * Inherited Methods * @method void wantToTest($text) * @method void wantTo($text) * @method void execute($callable) * @method void expectTo($prediction) * @method void expect($prediction) * @method void amGoingTo($argumentation) * @method void am($role) * @method void lookForwardTo($achieveValue) * @method void comment($description) * @method \Codeception\Lib\Friend haveFriend($name, $actorClass = NULL) * * @SuppressWarnings(PHPMD) */ class AcceptanceTester extends \Codeception\Actor { use _generated\FunctionalTesterActions; use _generated\PhpBrowserGherkinSteps; /** * Define custom actions here */ }
现在您可以使用从 PhpBrowser
模块提供的方法编写的 Gherkin 功能,例如
Scenario: methods provided by Codeception PhpBrowser module are available as Gherkin steps Feature: I can go on the site homepage When I am on page '/' Then I can see element 'body.home'
该命令不仅限于 Codeception 默认模块,还可以与其他库提供的自定义模块或为项目自定义的模块一起工作。虽然该命令会尽力支持 Codeception\Module\
命名空间中的模块,但位于该命名空间之外的模块将需要指定完全限定名称才能正常工作
codecept gherkin:steppify "Acme\Project\Tests\Modules\ModuleOne"
这意味着 gherkin:steppify ModuleName
是 gherkin:steppify "Codeception\Module\ModuleName"
的快捷方式,您可以提供任何其他兼容的命名空间类。
控制输出方法
虽然该命令会尽力“智能”并帮助生成它所具有的方法签名,但它始终有局限性。因此,方法签名生成逻辑将在生成过程中考虑级联定义
- 如果可用,请使用配置文件
- 否则,使用方法文档块
- 否则,回退到使用内置逻辑
文档块标签
该命令支持两个文档块标签来控制生成
@gherkin
- 可以是no
以防止方法生成任何步骤,或逗号分隔的步骤类型列表(given
、when
、then
)。
请注意,如果在方法文档块中找到与 Gherkin 步骤兼容的步骤定义,则将使用它们。
配置文件
该命令支持一个 --steps-config <file.yml>
选项,允许指定哪些方法和如何生成步骤。该文件具有以下格式
namespace: Acme\Project modules: PhpBrowser: methods: amOnPage: generates: [given, when] step: I visit page :page Acme\Modules\SomeModule: exclude: - methodTwo methods: - haveAuthKeyInDatabase: generates: [given] step: I have authorization key :key in database <module>: exclude: - <excluded method one> - <excluded method two> methods: - <method name>: generates: [given, when, then] step: <step definition template>
如果指定了 namespace
选项,则设置文件中指定的选项将覆盖它。
选项
该命令支持旨在使其输出可控到舒适程度的选项
--steps-config <file>
- 请参阅 配置文件部分;允许指定步骤定义生成配置文件的路径。--prefix <prefix>
- 允许指定应附加到生成的步骤文件名的字符串。--namespace <namespace>
-- 允许指定步骤将被生成的命名空间;默认情况下,步骤将在_generated
命名空间中生成,通过将Acme\Namespace
传递给此选项,将使特性在Acme\Project\_generated
命名空间中生成。