KGRKJGETMRETU895U-589TY5MIGM5JGB5SDFESFREWTGR54TY
Server : Apache/2.4.62
System : FreeBSD fbsdweb2.web.rcn.net 14.1-RELEASE FreeBSD 14.1-RELEASE releng/14.1-n267679-10e31f0946d8 GENERIC amd64
User : www ( 80)
PHP Version : 8.3.8
Disable Function : NONE
Directory :  /domains/irtiweb/CATS/vendor/behat/behat/features/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /domains/irtiweb/CATS/vendor/behat/behat/features/hooks.feature
Feature: hooks
  In order to hook into Behat testing process
  As a tester
  I need to be able to write hooks

  Background:
    Given a file named "behat.yml" with:
      """
      default:
        suites:
          default:
            parameters:
              before_feature: BEFORE EVERY FEATURE
              after_feature:  AFTER EVERY FEATURE
      """
    And a file named "features/bootstrap/FeatureContext.php" with:
      """
      <?php

      use Behat\Behat\Context\Context;
      use Behat\Gherkin\Node\PyStringNode,
          Behat\Gherkin\Node\TableNode;

      class FeatureContext implements Context
      {
          private $number;

          /**
           * @BeforeFeature
           */
          static public function doSomethingBeforeFeature($event) {
              $params = $event->getSuite()->getSetting('parameters');
              echo "= do something ".$params['before_feature'];
          }

          /**
           * @AfterFeature
           */
          static public function doSomethingAfterFeature($event) {
              $params = $event->getSuite()->getSetting('parameters');
              echo "= do something ".$params['after_feature'];
          }

          /**
           * @BeforeFeature @someFeature
           */
          static public function doSomethingBeforeSomeFeature($event) {
              echo "= do something before SOME feature";
          }

          /**
           * @AfterFeature @someFeature
           */
          static public function doSomethingAfterSomeFeature($event) {
              echo "= do something after SOME feature";
          }

          /**
           * @BeforeScenario
           */
          public function beforeScenario($event) {
              $this->number = 50;
          }

          /**
           * @BeforeScenario 130
           */
          public function beforeScenario130($event) {
              $this->number = 130;
          }

          /**
           * @BeforeScenario @thirty
           */
          public function beforeScenarioThirty($event) {
              $this->number = 30;
          }

          /**
           * @BeforeScenario @exception
           */
          public function beforeScenarioException($event) {
              throw new \Exception('Exception');
          }

          /**
           * @BeforeStep I must have 100
           */
          public function beforeStep100($event) {
              $this->number = 100;
          }

          /**
           * @Given /^I have entered (\d+)$/
           */
          public function iHaveEntered($number) {
              $this->number = intval($number);
          }

          /**
           * @Then /^I must have (\d+)$/
           */
          public function iMustHave($number) {
              \PHPUnit_Framework_Assert::assertEquals(intval($number), $this->number);
          }
      }
      """

  Scenario:
    Given a file named "features/test.feature" with:
      """
      Feature:
        Scenario:
          Then I must have 50
        Scenario:
          Given I have entered 12
          Then I must have 12

        @thirty
        Scenario:
          Given I must have 30
          When I have entered 23
          Then I must have 23
        @100 @thirty
        Scenario:
          Given I must have 30
          When I have entered 1
          Then I must have 100

        Scenario: 130
          Given I must have 130
      """
    When I run "behat --no-colors -f pretty"
    Then it should pass with:
      """
      ┌─ @BeforeFeature # FeatureContext::doSomethingBeforeFeature()
      │
      │  = do something BEFORE EVERY FEATURE
      │
      Feature:

        Scenario:             # features/test.feature:2
          Then I must have 50 # FeatureContext::iMustHave()

        Scenario:                 # features/test.feature:4
          Given I have entered 12 # FeatureContext::iHaveEntered()
          Then I must have 12     # FeatureContext::iMustHave()

        @thirty
        Scenario:                # features/test.feature:9
          Given I must have 30   # FeatureContext::iMustHave()
          When I have entered 23 # FeatureContext::iHaveEntered()
          Then I must have 23    # FeatureContext::iMustHave()

        @100 @thirty
        Scenario:               # features/test.feature:14
          Given I must have 30  # FeatureContext::iMustHave()
          When I have entered 1 # FeatureContext::iHaveEntered()
          Then I must have 100  # FeatureContext::iMustHave()

        Scenario: 130           # features/test.feature:19
          Given I must have 130 # FeatureContext::iMustHave()

      │
      │  = do something AFTER EVERY FEATURE
      │
      └─ @AfterFeature # FeatureContext::doSomethingAfterFeature()

      5 scenarios (5 passed)
      10 steps (10 passed)
      """

  Scenario: Filter features
    Given a file named "features/1-one.feature" with:
      """
      Feature:
        Scenario:
          Then I must have 50

        Scenario:
          Given I have entered 12
          Then I must have 12

        Scenario: 130
          Given I must have 130
      """
    Given a file named "features/2-two.feature" with:
      """
      @someFeature
      Feature:
        Scenario: 130
          Given I must have 130
      """
    When I run "behat --no-colors -f pretty"
    Then it should pass with:
      """
      ┌─ @BeforeFeature # FeatureContext::doSomethingBeforeFeature()
      │
      │  = do something BEFORE EVERY FEATURE
      │
      Feature:

        Scenario:             # features/1-one.feature:2
          Then I must have 50 # FeatureContext::iMustHave()

        Scenario:                 # features/1-one.feature:5
          Given I have entered 12 # FeatureContext::iHaveEntered()
          Then I must have 12     # FeatureContext::iMustHave()

        Scenario: 130           # features/1-one.feature:9
          Given I must have 130 # FeatureContext::iMustHave()

      │
      │  = do something AFTER EVERY FEATURE
      │
      └─ @AfterFeature # FeatureContext::doSomethingAfterFeature()

      ┌─ @BeforeFeature # FeatureContext::doSomethingBeforeFeature()
      │
      │  = do something BEFORE EVERY FEATURE
      │
      ┌─ @BeforeFeature @someFeature # FeatureContext::doSomethingBeforeSomeFeature()
      │
      │  = do something before SOME feature
      │
      @someFeature
      Feature:

        Scenario: 130           # features/2-two.feature:3
          Given I must have 130 # FeatureContext::iMustHave()

      │
      │  = do something AFTER EVERY FEATURE
      │
      └─ @AfterFeature # FeatureContext::doSomethingAfterFeature()

      │
      │  = do something after SOME feature
      │
      └─ @AfterFeature @someFeature # FeatureContext::doSomethingAfterSomeFeature()

      4 scenarios (4 passed)
      5 steps (5 passed)
      """

  Scenario: Background step hooks
    Given a file named "features/background.feature" with:
      """
      Feature:
        Background:
          Given I must have 50

        Scenario:
          Given I have entered 12
          Then I must have 12
      """
    When I run "behat --no-colors -f pretty"
    Then it should pass with:
      """
      ┌─ @BeforeFeature # FeatureContext::doSomethingBeforeFeature()
      │
      │  = do something BEFORE EVERY FEATURE
      │
      Feature:

        Background:            # features/background.feature:2
          Given I must have 50 # FeatureContext::iMustHave()

        Scenario:                 # features/background.feature:5
          Given I have entered 12 # FeatureContext::iHaveEntered()
          Then I must have 12     # FeatureContext::iMustHave()

      │
      │  = do something AFTER EVERY FEATURE
      │
      └─ @AfterFeature # FeatureContext::doSomethingAfterFeature()

      1 scenario (1 passed)
      3 steps (3 passed)
      """

  Scenario: Background exceptions
    Given a file named "features/background.feature" with:
    """
      Feature:

        @exception
        Scenario:
          Then I must have 50
        Scenario:
          Given I have entered 12
          Then I must have 12

        @exception
        Scenario:
          Given I must have 30
          When I have entered 23
          Then I must have 23

        Scenario: 130
          Given I must have 130
      """
    When I run "behat --no-colors -f pretty"
    Then it should fail with:
      """
      ┌─ @BeforeFeature # FeatureContext::doSomethingBeforeFeature()
      │
      │  = do something BEFORE EVERY FEATURE
      │
      Feature:

        ┌─ @BeforeScenario @exception # FeatureContext::beforeScenarioException()
        │
        ╳  Exception (Exception)
        │
        @exception
        Scenario:             # features/background.feature:4
          Then I must have 50 # FeatureContext::iMustHave()

        Scenario:                 # features/background.feature:6
          Given I have entered 12 # FeatureContext::iHaveEntered()
          Then I must have 12     # FeatureContext::iMustHave()

        ┌─ @BeforeScenario @exception # FeatureContext::beforeScenarioException()
        │
        ╳  Exception (Exception)
        │
        @exception
        Scenario:                # features/background.feature:11
          Given I must have 30   # FeatureContext::iMustHave()
          When I have entered 23 # FeatureContext::iHaveEntered()
          Then I must have 23    # FeatureContext::iMustHave()

        Scenario: 130           # features/background.feature:16
          Given I must have 130 # FeatureContext::iMustHave()

      │
      │  = do something AFTER EVERY FEATURE
      │
      └─ @AfterFeature # FeatureContext::doSomethingAfterFeature()

      --- Skipped scenarios:

          features/background.feature:4
          features/background.feature:11

      4 scenarios (2 passed, 2 skipped)
      7 steps (3 passed, 4 skipped)
      """

  Scenario: Step state doesn't affect after hooks
    Given a file named "features/test.feature" with:
      """
      Feature:

        Scenario:
          Given passing step

        Scenario:
          Given failing step

        Scenario:
          Given passing step with failing hook

        @failing-before-hook
        Scenario:
          Given passing step
      """
    And a file named "features/bootstrap/FeatureContext.php" with:
      """
      <?php

      use Behat\Behat\Context\Context;

      class FeatureContext implements Context
      {
          /** @BeforeScenario */
          public function passingBeforeScenarioHook()
          {
              echo 'Is passing';
          }

          /** @BeforeScenario @failing-before-hook */
          public function failingBeforeScenarioHook()
          {
              throw new \RuntimeException('Is failing');
          }

          /** @AfterScenario */
          public function passingAfterScenarioHook()
          {
              echo 'Is passing';
          }

          /** @BeforeStep */
          public function passingBeforeStep()
          {
              echo 'Is passing';
          }

          /** @BeforeStep passing step with failing hook */
          public function failingBeforeStep()
          {
              throw new \RuntimeException('Is failing');
          }

          /** @AfterStep */
          public function passingAfterStep()
          {
              echo 'Is passing';
          }

          /**
           * @Given passing step
           * @Given passing step with failing hook
           */
          public function passingStep()
          {
              echo 'Is passing';
          }

          /** @Given failing step */
          public function failingStep()
          {
              throw new \RuntimeException('Failing');
          }
      }
      """
    When I run "behat --no-colors -f pretty"
    Then it should fail with:
      """
      Feature:

        ┌─ @BeforeScenario # FeatureContext::passingBeforeScenarioHook()
        │
        │  Is passing
        │
        Scenario:            # features/test.feature:3
          ┌─ @BeforeStep # FeatureContext::passingBeforeStep()
          │
          │  Is passing
          │
          Given passing step # FeatureContext::passingStep()
            │ Is passing
          │
          │  Is passing
          │
          └─ @AfterStep # FeatureContext::passingAfterStep()
        │
        │  Is passing
        │
        └─ @AfterScenario # FeatureContext::passingAfterScenarioHook()

        ┌─ @BeforeScenario # FeatureContext::passingBeforeScenarioHook()
        │
        │  Is passing
        │
        Scenario:            # features/test.feature:6
          ┌─ @BeforeStep # FeatureContext::passingBeforeStep()
          │
          │  Is passing
          │
          Given failing step # FeatureContext::failingStep()
            Failing (RuntimeException)
          │
          │  Is passing
          │
          └─ @AfterStep # FeatureContext::passingAfterStep()
        │
        │  Is passing
        │
        └─ @AfterScenario # FeatureContext::passingAfterScenarioHook()

        ┌─ @BeforeScenario # FeatureContext::passingBeforeScenarioHook()
        │
        │  Is passing
        │
        Scenario:                              # features/test.feature:9
          ┌─ @BeforeStep # FeatureContext::passingBeforeStep()
          │
          │  Is passing
          │
          ┌─ @BeforeStep passing step with failing hook # FeatureContext::failingBeforeStep()
          │
          ╳  Is failing (RuntimeException)
          │
          Given passing step with failing hook # FeatureContext::passingStep()
        │
        │  Is passing
        │
        └─ @AfterScenario # FeatureContext::passingAfterScenarioHook()

        ┌─ @BeforeScenario # FeatureContext::passingBeforeScenarioHook()
        │
        │  Is passing
        │
        ┌─ @BeforeScenario @failing-before-hook # FeatureContext::failingBeforeScenarioHook()
        │
        ╳  Is failing (RuntimeException)
        │
        @failing-before-hook
        Scenario:            # features/test.feature:13
          Given passing step # FeatureContext::passingStep()

      --- Skipped scenarios:

          features/test.feature:13

      --- Failed scenarios:

          features/test.feature:6
          features/test.feature:9

      4 scenarios (1 passed, 2 failed, 1 skipped)
      4 steps (1 passed, 1 failed, 2 skipped)
      """

Anon7 - 2021