Ich würde gerne in Ghekin Feature-Dateien verwenden PhpStorm "Go To Declaration" -Funktion (Command + B auf einem Mac) bei der Verwendung von Codeception. Allerdings ist PhpStorm nicht scheinen, um herauszufinden, wo die Schritte definiert sind, und gibt diese Warnung:Nicht definierte Schritt Referenz in PHPStorm bei der Verwendung von Codeception und Gurke
undefiniert Schritt Hinweis: [...]
Wenn ich verwende Behat, PhpStorm versteht wo die Schritte definiert sind.
Schritte
mkdir codeception
cd codeception
composer require "codeception/codeception" --dev
./vendor/bin/codecept bootstrap
./vendor/bin/codecept generate:feature acceptance first
- Öffnen Sie das Projektverzeichnis in PhpStorm zu reproduzieren.
- Stellen Sie sicher, dass PhpStorm weiß, dass Codeception installiert ist:
- Vergewissern Sie sich, dass die PhpStorm Plugins Gherkin und Codeception Rahmen installiert sind.
- Fügen Sie einen Schritt zu
tests/acceptance/first.feature
hinzu. ./vendor/bin/codecept gherkin:snippets acceptance
Dies führt zu dem folgenden Code. (Nicht alles ist im Preis inbegriffen - lassen Sie mich wissen, wenn ich etwas hinzufügen müssen.)
tests/acceptance/first.feature
:
Feature: first
In order to ...
As a ...
I need to ...
Scenario: try first
When I visit "/"
tests/_support/AcceptanceTester.php
:
<?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\AcceptanceTesterActions;
/**
* Define custom actions here
*/
/**
* @When I visit :arg1
*/
public function iVisit($arg1)
{
throw new \Codeception\Exception\Incomplete("Step `I visit :arg1` is not defined");
}
}
Allerdings ist PhpStorm nicht wissen, wo iVisit()
ist. Wie kann ich das beheben?
Das ist großartig, vielen Dank. Ich hätte nie daran gedacht (und verstehe immer noch nicht, warum es funktioniert). –