Behat Mink: 02 - Drupal Extension(& Mink ) Framework (Inital State)

Behat Quick Start

 

Comoposer.json

{
  "require":{
      "drupal/drupal-extension":"~3.0",
      "guzzlehttp/guzzle" : "^6.0@dev"
    },
      "config":{
        "bin-dir":"bin/"
      }
}
    

Behat.yml

default:
  suites:
    default:
      contexts:
       - FeatureContent
       - Drupal\Extension\Context\DrupalContext
       - Drupal\Extension\Context\MinkContext
       - Drupal\Extension\Context\MessageContext
       - Drupal\Extension\Context\DrushContext
  extensions:
    Behat\MinkExtension:
      goutte: ~
      selenium2: ~
      base_url: http://unityconstruct.org
    Drupal\DrupalExtension:
      blackbox: ~

 

Get Composer & Compile

 

Download composer stub

T:\git\behatmink
λ ;curl https://getcomposer.org/installer > composer-setup.php
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  257k  100  257k    0     0   151k      0  0:00:01  0:00:01 --:--:--  151k

 

T:\git\behatmink
λ ls
behat.yml  composer-setup.php  composer.json

 

Download composer & create composer.phar

T:\git\behatmink
λ php composer-setup.php
All settings correct for using Composer
Downloading...

Composer (version 1.7.2) successfully installed to: T:\git\behatmink\composer.phar
Use it: php composer.phar

 

Composer install

T:\git\behatmink
λ php composer.phar install
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 36 installs, 0 updates, 0 removals
  - Installing symfony/event-dispatcher (v3.4.17): Loading from cache
  - Installing psr/container (1.0.0): Loading from cache
  - Installing symfony/dependency-injection (v3.4.17): Loading from cache
  - Installing symfony/polyfill-mbstring (v1.9.0): Loading from cache
  - Installing symfony/polyfill-iconv (v1.9.0): Loading from cache
  - Installing drupal/core-utility (8.6.1): Downloading (100%)
  - Installing drupal/core-render (8.6.1): Downloading (100%)
  - Installing paragonie/random_compat (v2.0.17): Loading from cache
  - Installing symfony/process (v3.4.17): Loading from cache
  - Installing drupal/drupal-driver (v1.4.0): Downloading (100%)
  - Installing instaclick/php-webdriver (1.4.5): Loading from cache
  - Installing symfony/css-selector (v3.4.17): Loading from cache
  - Installing behat/mink (v1.7.1): Downloading (100%)
  - Installing behat/mink-selenium2-driver (v1.3.1): Downloading (100%)
  - Installing psr/http-message (1.0.1): Loading from cache
  - Installing guzzlehttp/psr7 (1.4.2): Loading from cache
  - Installing guzzlehttp/promises (v1.3.1): Loading from cache
  - Installing guzzlehttp/guzzle (dev-master 3ff39a4): Cloning 3ff39a4d6e from cache
  - Installing symfony/polyfill-ctype (v1.9.0): Loading from cache
  - Installing symfony/dom-crawler (v4.1.6): Loading from cache
  - Installing symfony/browser-kit (v4.1.6): Loading from cache
  - Installing fabpot/goutte (v3.2.3): Loading from cache
  - Installing behat/mink-browserkit-driver (1.3.3): Loading from cache
  - Installing behat/mink-goutte-driver (v1.2.1): Loading from cache
  - Installing symfony/filesystem (v4.1.6): Loading from cache
  - Installing symfony/yaml (v4.1.6): Downloading (100%)
  - Installing symfony/translation (v4.1.6): Loading from cache
  - Installing symfony/console (v4.1.6): Loading from cache
  - Installing symfony/config (v4.1.6): Loading from cache
  - Installing symfony/class-loader (v3.4.17): Loading from cache
  - Installing container-interop/container-interop (1.2.0): Loading from cache
  - Installing behat/transliterator (v1.2.0): Loading from cache
  - Installing behat/gherkin (v4.5.1): Loading from cache
  - Installing behat/behat (v3.5.0): Loading from cache
  - Installing behat/mink-extension (2.3.1): Downloading (100%)
  - Installing drupal/drupal-extension (v3.4.1): Downloading (100%)
symfony/event-dispatcher suggests installing symfony/http-kernel
symfony/dependency-injection suggests installing symfony/expression-language (For using expressions in service container configuration)
symfony/dependency-injection suggests installing symfony/finder (For using double-star glob patterns or when GLOB_BRACE portability is required)
symfony/dependency-injection suggests installing symfony/proxy-manager-bridge (Generate service proxies to lazy load them)
paragonie/random_compat suggests installing ext-libsodium (Provides a modern crypto API that can be used to generate random bytes.)
behat/mink suggests installing behat/mink-zombie-driver (fast and JS-enabled headless driver for any app (requires node.js))
guzzlehttp/guzzle suggests installing psr/log (Required for using the Log middleware)
symfony/translation suggests installing psr/log-implementation (To use logging capability in translator)
symfony/console suggests installing psr/log-implementation (For using the console logger)
symfony/console suggests installing symfony/lock
symfony/class-loader suggests installing symfony/polyfill-apcu (For using ApcClassLoader on HHVM)
Writing lock file
Generating autoload files

 

composer show

  •  
T:\git\behatmink
λ php composer.phar show
behat/behat                         v3.5.0             Scenario-oriented BDD framework for PHP 5.3
behat/gherkin                       v4.5.1             Gherkin DSL parser for PHP 5.3
behat/mink                          v1.7.1             Browser controller/emulator abstraction for PHP
behat/mink-browserkit-driver        1.3.3              Symfony2 BrowserKit driver for Mink framework
behat/mink-extension                2.3.1              Mink extension for Behat
behat/mink-goutte-driver            v1.2.1             Goutte driver for Mink framework
behat/mink-selenium2-driver         v1.3.1             Selenium2 (WebDriver) driver for Mink framework
behat/transliterator                v1.2.0             String transliterator
container-interop/container-interop 1.2.0              Promoting the interoperability of container objects (DI...
drupal/core-render                  8.6.1              Renders placeholder variables for HTML and plain-text d...
drupal/core-utility                 8.6.1              Mostly static utility classes for string, xss, array, i...
drupal/drupal-driver                v1.4.0             A collection of reusable Drupal drivers
drupal/drupal-extension             v3.4.1             Drupal extension for Behat
fabpot/goutte                       v3.2.3             A simple PHP Web Scraper
guzzlehttp/guzzle                   dev-master 3ff39a4 Guzzle is a PHP HTTP client library
guzzlehttp/promises                 v1.3.1             Guzzle promises library
guzzlehttp/psr7                     1.4.2              PSR-7 message implementation that also provides common ...
instaclick/php-webdriver            1.4.5              PHP WebDriver for Selenium 2
paragonie/random_compat             v2.0.17            PHP 5.x polyfill for random_bytes() and random_int() fr...
psr/container                       1.0.0              Common Container Interface (PHP FIG PSR-11)
psr/http-message                    1.0.1              Common interface for HTTP messages
symfony/browser-kit                 v4.1.6             Symfony BrowserKit Component
symfony/class-loader                v3.4.17            Symfony ClassLoader Component
symfony/config                      v4.1.6             Symfony Config Component
symfony/console                     v4.1.6             Symfony Console Component
symfony/css-selector                v3.4.17            Symfony CssSelector Component
symfony/dependency-injection        v3.4.17            Symfony DependencyInjection Component
symfony/dom-crawler                 v4.1.6             Symfony DomCrawler Component
symfony/event-dispatcher            v3.4.17            Symfony EventDispatcher Component
symfony/filesystem                  v4.1.6             Symfony Filesystem Component
symfony/polyfill-ctype              v1.9.0             Symfony polyfill for ctype functions
symfony/polyfill-iconv              v1.9.0             Symfony polyfill for the Iconv extension
symfony/polyfill-mbstring           v1.9.0             Symfony polyfill for the Mbstring extension
symfony/process                     v3.4.17            Symfony Process Component
symfony/translation                 v4.1.6             Symfony Translation Component
symfony/yaml                        v4.1.6             Symfony Yaml Component

 

Behat --init

  •  
T:\git\behatmink
λ bin\behat --init
+d features - place your *.feature files here
+d features\bootstrap - place your context classes here
+f features\bootstrap\FeatureContent.php - place your definitions, transformations and hooks here
+d features\bootstrap\Drupal\Extension\Context - place your context classes here
+f features\bootstrap\Drupal\Extension\Context\DrupalContext.php - place your definitions, transformations and hooks here
+f features\bootstrap\Drupal\Extension\Context\MinkContext.php - place your definitions, transformations and hooks here
+f features\bootstrap\Drupal\Extension\Context\MessageContext.php - place your definitions, transformations and hooks here
+f features\bootstrap\Drupal\Extension\Context\DrushContext.php - place your definitions, transformations and hooks here

 

behat --dry-run --append-snippets

behat --dry-run --append-snippets

 

 

Composer Add phpunit

  •  
    "require-dev":{
      "phpunit/phpunit": "^4.8.36|^6.3"
    },

Composer install

T:\git\behatmink                                                                                                    
λ php composer.phar install                                                                                         
Loading composer repositories with package information                                                              
Installing dependencies (including require-dev) from lock file                                                      
Warning: The lock file is not up to date with the latest changes in composer.json. You may be getting outdated depen
dencies. Run update to update them.                                                                                 
Nothing to install or update                                                                                        
Generating autoload files                                                                                           
                                        

Composer update

  •  
T:\git\behatmink                                                                                                    
λ php composer.phar update                                                                                          
Loading composer repositories with package information                                                              
Updating dependencies (including require-dev)                                                                       
Package operations: 28 installs, 0 updates, 0 removals                                                              
  - Installing sebastian/version (2.0.1): Loading from cache                                                        
  - Installing sebastian/resource-operations (1.0.0): Loading from cache                                            
  - Installing sebastian/recursion-context (3.0.0): Loading from cache                                              
  - Installing sebastian/object-reflector (1.1.1): Loading from cache                                               
  - Installing sebastian/object-enumerator (3.0.3): Loading from cache                                              
  - Installing sebastian/global-state (2.0.0): Loading from cache                                                   
  - Installing sebastian/exporter (3.1.0): Loading from cache                                                       
  - Installing sebastian/environment (3.1.0): Loading from cache                                                    
  - Installing sebastian/diff (2.0.1): Loading from cache                                                           
  - Installing sebastian/comparator (2.1.3): Loading from cache                                                     
  - Installing doctrine/instantiator (1.1.0): Loading from cache                                                    
  - Installing phpunit/php-text-template (1.2.1): Loading from cache                                                
  - Installing phpunit/phpunit-mock-objects (5.0.10): Loading from cache                                            
  - Installing phpunit/php-timer (1.0.9): Loading from cache                                                        
  - Installing phpunit/php-file-iterator (1.4.5): Loading from cache                                                
  - Installing theseer/tokenizer (1.1.0): Loading from cache                                                        
  - Installing sebastian/code-unit-reverse-lookup (1.0.1): Loading from cache                                       
  - Installing phpunit/php-token-stream (2.0.2): Loading from cache                                                 
  - Installing phpunit/php-code-coverage (5.3.2): Loading from cache                                                
  - Installing webmozart/assert (1.3.0): Loading from cache                                                         
  - Installing phpdocumentor/reflection-common (1.0.1): Loading from cache                                          
  - Installing phpdocumentor/type-resolver (0.4.0): Loading from cache                                              
  - Installing phpdocumentor/reflection-docblock (4.3.0): Loading from cache                                        
  - Installing phpspec/prophecy (1.8.0): Loading from cache                                                         
  - Installing phar-io/version (1.0.1): Loading from cache                                                          
  - Installing phar-io/manifest (1.0.1): Loading from cache                                                         
  - Installing myclabs/deep-copy (1.8.1): Loading from cache                                                        
  - Installing phpunit/phpunit (6.5.13): Loading from cache                                                         
sebastian/global-state suggests installing ext-uopz (*)                                                             
phpunit/phpunit-mock-objects suggests installing ext-soap (*)                                                       
phpunit/php-code-coverage suggests installing ext-xdebug (^2.5.5)                                                   
phpunit/phpunit suggests installing phpunit/php-invoker (^1.1)                                                      
phpunit/phpunit suggests installing ext-xdebug (*)                                                                  
Writing lock file                                                                                                   
Generating autoload files                                                                                           
                                                                                                                   

 

 

 


Session Logs

2018.1006.1800

  - Installing phpspec/prophecy (1.8.0): Loading from cache
  - Installing phar-io/version (1.0.1): Loading from cache
  - Installing phar-io/manifest (1.0.1): Loading from cache
  - Installing myclabs/deep-copy (1.8.1): Loading from cache
  - Installing phpunit/phpunit (6.5.13): Loading from cache
sebastian/global-state suggests installing ext-uopz (*)
phpunit/phpunit-mock-objects suggests installing ext-soap (*)
phpunit/php-code-coverage suggests installing ext-xdebug (^2.5.5)
phpunit/phpunit suggests installing phpunit/php-invoker (^1.1)
phpunit/phpunit suggests installing ext-xdebug (*)
Writing lock file
Generating autoload files

T:\git\behatmink
λ bin\behat --dry-run --append-snippets
No scenarios
No steps
0m0.14s (9.56Mb)

T:\git\behatmink
λ bin\behat --init

T:\git\behatmink
λ bin\behat

In Parser.php line 72:

  Lexer exception "Feature file is not in UTF8 encoding" thrown for file features\basket.feature

In Lexer.php line 64:

  Feature file is not in UTF8 encoding

behat [-s|--suite SUITE] [-f|--format FORMAT] [-o|--out OUT] [--format-settings FORMAT-SETTINGS] [--init] [--lang LANG] [--name NAME] [--tags TAGS] [--role ROLE] [--story-syntax] [-d|--definitions DEFINITIONS] [--snippets-for [SNIPPETS-FOR]] [--snippets-type SNIPPETS-TYPE] [--append-snippets] [--no-snippets] [--strict] [--order ORDER] [--rerun] [--stop-on-failure] [--dry-run] [--] [<paths>]

T:\git\behatmink
λ bin\behat
Feature: Product basket
  In order to buy products
  As a customer
  I need to be able to put interesting products into a basket

  Rules:
  - VAT is 20%
  - Delivery for basket under $10 is $3
  - Delivery for basket over $10 is $2

  Scenario: Buying a single product under $10               # features\basket.feature:11
    Given there is a "Sith Lord Lightsaber", which costs $5
    When I add the "Sith Lord Lightsaber" to the basket
    Then I should have 1 product in the basket
    And the overall basket price should be $9

  Scenario: Buying a single product over $10                 # features\basket.feature:17
    Given there is a "Sith Lord Lightsaber", which costs $15
    When I add the "Sith Lord Lightsaber" to the basket
    Then I should have 1 product in the basket
    And the overall basket price should be $20

  Scenario: Buying two products over $10                     # features\basket.feature:23
    Given there is a "Sith Lord Lightsaber", which costs $10
    And there is a "Jedi Lightsaber", which costs $5
    When I add the "Sith Lord Lightsaber" to the basket
    And I add the "Jedi Lightsaber" to the basket
    Then I should have 2 products in the basket
    And the overall basket price should be $20

3 scenarios (3 undefined)
14 steps (14 undefined)
0m0.62s (9.91Mb)

--- FeatureContent has missing steps. Define them with these snippets:

    /**
     * @Given there is a :arg1, which costs $:arg2
     */
    public function thereIsAWhichCosts($arg1, $arg2)
    {
        throw new PendingException();
    }

    /**
     * @When I add the :arg1 to the basket
     */
    public function iAddTheToTheBasket($arg1)
    {
        throw new PendingException();
    }

    /**
     * @Then I should have :arg1 product in the basket
     */
    public function iShouldHaveProductInTheBasket($arg1)
    {
        throw new PendingException();
    }

    /**
     * @Then the overall basket price should be $:arg1
     */
    public function theOverallBasketPriceShouldBe($arg1)
    {
        throw new PendingException();
    }

    /**
     * @Then I should have :arg1 products in the basket
     */
    public function iShouldHaveProductsInTheBasket($arg1)
    {
        throw new PendingException();
    }

T:\git\behatmink
λ bin\behat --init

T:\git\behatmink
λ bin\behat
Feature: Product basket
  In order to buy products
  As a customer
  I need to be able to put interesting products into a basket

  Rules:
  - VAT is 20%
  - Delivery for basket under $10 is $3
  - Delivery for basket over $10 is $2

  Scenario: Buying a single product under $10               # features\basket.feature:11
    Given there is a "Sith Lord Lightsaber", which costs $5
    When I add the "Sith Lord Lightsaber" to the basket
    Then I should have 1 product in the basket
    And the overall basket price should be $9

  Scenario: Buying a single product over $10                 # features\basket.feature:17
    Given there is a "Sith Lord Lightsaber", which costs $15
    When I add the "Sith Lord Lightsaber" to the basket
    Then I should have 1 product in the basket
    And the overall basket price should be $20

  Scenario: Buying two products over $10                     # features\basket.feature:23
    Given there is a "Sith Lord Lightsaber", which costs $10
    And there is a "Jedi Lightsaber", which costs $5
    When I add the "Sith Lord Lightsaber" to the basket
    And I add the "Jedi Lightsaber" to the basket
    Then I should have 2 products in the basket
    And the overall basket price should be $20

3 scenarios (3 undefined)
14 steps (14 undefined)
0m0.45s (9.91Mb)

--- FeatureContent has missing steps. Define them with these snippets:

    /**
     * @Given there is a :arg1, which costs $:arg2
     */
    public function thereIsAWhichCosts($arg1, $arg2)
    {
        throw new PendingException();
    }

    /**
     * @When I add the :arg1 to the basket
     */
    public function iAddTheToTheBasket($arg1)
    {
        throw new PendingException();
    }

    /**
     * @Then I should have :arg1 product in the basket
     */
    public function iShouldHaveProductInTheBasket($arg1)
    {
        throw new PendingException();
    }

    /**
     * @Then the overall basket price should be $:arg1
     */
    public function theOverallBasketPriceShouldBe($arg1)
    {
        throw new PendingException();
    }

    /**
     * @Then I should have :arg1 products in the basket
     */
    public function iShouldHaveProductsInTheBasket($arg1)
    {
        throw new PendingException();
    }

T:\git\behatmink
λ bin\behat --dry-run --append-snippets
Feature: Product basket
  In order to buy products
  As a customer
  I need to be able to put interesting products into a basket

  Rules:
  - VAT is 20%
  - Delivery for basket under $10 is $3
  - Delivery for basket over $10 is $2

  Scenario: Buying a single product under $10               # features\basket.feature:11
    Given there is a "Sith Lord Lightsaber", which costs $5
    When I add the "Sith Lord Lightsaber" to the basket
    Then I should have 1 product in the basket
    And the overall basket price should be $9

  Scenario: Buying a single product over $10                 # features\basket.feature:17
    Given there is a "Sith Lord Lightsaber", which costs $15
    When I add the "Sith Lord Lightsaber" to the basket
    Then I should have 1 product in the basket
    And the overall basket price should be $20

  Scenario: Buying two products over $10                     # features\basket.feature:23
    Given there is a "Sith Lord Lightsaber", which costs $10
    And there is a "Jedi Lightsaber", which costs $5
    When I add the "Sith Lord Lightsaber" to the basket
    And I add the "Jedi Lightsaber" to the basket
    Then I should have 2 products in the basket
    And the overall basket price should be $20

3 scenarios (3 undefined)
14 steps (14 undefined)
0m0.43s (9.83Mb)

u features\bootstrap\FeatureContent.php - `there is a "Sith Lord Lightsaber", which costs $5` definition added
u features\bootstrap\FeatureContent.php - `I add the "Sith Lord Lightsaber" to the basket` definition added
u features\bootstrap\FeatureContent.php - `I should have 1 product in the basket` definition added
u features\bootstrap\FeatureContent.php - `the overall basket price should be $9` definition added
u features\bootstrap\FeatureContent.php - `I should have 2 products in the basket` definition added

T:\git\behatmink
λ bin\behat
Feature: Product basket
  In order to buy products
  As a customer
  I need to be able to put interesting products into a basket

  Rules:
  - VAT is 20%
  - Delivery for basket under $10 is $3
  - Delivery for basket over $10 is $2

PHP Fatal error:  Uncaught Error: Class 'Shelf' not found in T:\git\behatmink\features\bootstrap\FeatureContent.php:28
Stack trace:
#0 [internal function]: FeatureContent->__construct()
#1 T:\git\behatmink\vendor\behat\behat\src\Behat\Behat\Context\ContextFactory.php(136): ReflectionClass->newInstance()
#2 T:\git\behatmink\vendor\behat\behat\src\Behat\Behat\Context\ContextFactory.php(88): Behat\Behat\Context\ContextFactory->createInstance(Object(ReflectionClass), Array)
#3 T:\git\behatmink\vendor\behat\behat\src\Behat\Behat\Context\Environment\Handler\ContextEnvironmentHandler.php(121): Behat\Behat\Context\ContextFactory->createContext('FeatureContent', Array, Array)
#4 T:\git\behatmink\vendor\behat\behat\src\Behat\Testwork\Environment\EnvironmentManager.php(93): Behat\Behat\Context\Environment\Handler\ContextEnvironmentHandler->isolateEnvironment(Object(Behat\Behat\Context\Environment\UninitializedContextEnvironment), Object(Behat\Gherkin\Node\ScenarioNode))
#5 T:\git\behatmink\vendor\behat\behat\src\Behat\Behat\Tester\Runtim in T:\git\behatmink\features\bootstrap\FeatureContent.php on line 28

Fatal error: Uncaught Error: Class 'Shelf' not found in T:\git\behatmink\features\bootstrap\FeatureContent.php:28
Stack trace:
#0 [internal function]: FeatureContent->__construct()
#1 T:\git\behatmink\vendor\behat\behat\src\Behat\Behat\Context\ContextFactory.php(136): ReflectionClass->newInstance()
#2 T:\git\behatmink\vendor\behat\behat\src\Behat\Behat\Context\ContextFactory.php(88): Behat\Behat\Context\ContextFactory->createInstance(Object(ReflectionClass), Array)
#3 T:\git\behatmink\vendor\behat\behat\src\Behat\Behat\Context\Environment\Handler\ContextEnvironmentHandler.php(121): Behat\Behat\Context\ContextFactory->createContext('FeatureContent', Array, Array)
#4 T:\git\behatmink\vendor\behat\behat\src\Behat\Testwork\Environment\EnvironmentManager.php(93): Behat\Behat\Context\Environment\Handler\ContextEnvironmentHandler->isolateEnvironment(Object(Behat\Behat\Context\Environment\UninitializedContextEnvironment), Object(Behat\Gherkin\Node\ScenarioNode))
#5 T:\git\behatmink\vendor\behat\behat\src\Behat\Behat\Tester\Runtim in T:\git\behatmink\features\bootstrap\FeatureContent.php on line 28

T:\git\behatmink
λ bin\behat
Feature: Product basket
  In order to buy products
  As a customer
  I need to be able to put interesting products into a basket

  Rules:
  - VAT is 20%
  - Delivery for basket under $10 is $3
  - Delivery for basket over $10 is $2

//features/bootstrap/Shelf.php
final class Shelf{
}PHP Fatal error:  Uncaught Error: Class 'Shelf' not found in T:\git\behatmink\features\bootstrap\FeatureContent.php:28
Stack trace:
#0 [internal function]: FeatureContent->__construct()
#1 T:\git\behatmink\vendor\behat\behat\src\Behat\Behat\Context\ContextFactory.php(136): ReflectionClass->newInstance()
#2 T:\git\behatmink\vendor\behat\behat\src\Behat\Behat\Context\ContextFactory.php(88): Behat\Behat\Context\ContextFactory->createInstance(Object(ReflectionClass), Array)
#3 T:\git\behatmink\vendor\behat\behat\src\Behat\Behat\Context\Environment\Handler\ContextEnvironmentHandler.php(121): Behat\Behat\Context\ContextFactory->createContext('FeatureContent', Array, Array)
#4 T:\git\behatmink\vendor\behat\behat\src\Behat\Testwork\Environment\EnvironmentManager.php(93): Behat\Behat\Context\Environment\Handler\ContextEnvironmentHandler->isolateEnvironment(Object(Behat\Behat\Context\Environment\UninitializedContextEnvironment), Object(Behat\Gherkin\Node\ScenarioNode))
#5 T:\git\behatmink\vendor\behat\behat\src\Behat\Behat\Tester\Runtim in T:\git\behatmink\features\bootstrap\FeatureContent.php on line 28

Fatal error: Uncaught Error: Class 'Shelf' not found in T:\git\behatmink\features\bootstrap\FeatureContent.php:28
Stack trace:
#0 [internal function]: FeatureContent->__construct()
#1 T:\git\behatmink\vendor\behat\behat\src\Behat\Behat\Context\ContextFactory.php(136): ReflectionClass->newInstance()
#2 T:\git\behatmink\vendor\behat\behat\src\Behat\Behat\Context\ContextFactory.php(88): Behat\Behat\Context\ContextFactory->createInstance(Object(ReflectionClass), Array)
#3 T:\git\behatmink\vendor\behat\behat\src\Behat\Behat\Context\Environment\Handler\ContextEnvironmentHandler.php(121): Behat\Behat\Context\ContextFactory->createContext('FeatureContent', Array, Array)
#4 T:\git\behatmink\vendor\behat\behat\src\Behat\Testwork\Environment\EnvironmentManager.php(93): Behat\Behat\Context\Environment\Handler\ContextEnvironmentHandler->isolateEnvironment(Object(Behat\Behat\Context\Environment\UninitializedContextEnvironment), Object(Behat\Gherkin\Node\ScenarioNode))
#5 T:\git\behatmink\vendor\behat\behat\src\Behat\Behat\Tester\Runtim in T:\git\behatmink\features\bootstrap\FeatureContent.php on line 28

T:\git\behatmink
λ bin\behat
Feature: Product basket
  In order to buy products
  As a customer
  I need to be able to put interesting products into a basket

  Rules:
  - VAT is 20%
  - Delivery for basket under $10 is $3
  - Delivery for basket over $10 is $2

//features/bootstrap/Shelf.php
final class Shelf{
}PHP Fatal error:  Uncaught Error: Class 'Shelf' not found in T:\git\behatmink\features\bootstrap\FeatureContent.php:28
Stack trace:
#0 [internal function]: FeatureContent->__construct()
#1 T:\git\behatmink\vendor\behat\behat\src\Behat\Behat\Context\ContextFactory.php(136): ReflectionClass->newInstance()
#2 T:\git\behatmink\vendor\behat\behat\src\Behat\Behat\Context\ContextFactory.php(88): Behat\Behat\Context\ContextFactory->createInstance(Object(ReflectionClass), Array)
#3 T:\git\behatmink\vendor\behat\behat\src\Behat\Behat\Context\Environment\Handler\ContextEnvironmentHandler.php(121): Behat\Behat\Context\ContextFactory->createContext('FeatureContent', Array, Array)
#4 T:\git\behatmink\vendor\behat\behat\src\Behat\Testwork\Environment\EnvironmentManager.php(93): Behat\Behat\Context\Environment\Handler\ContextEnvironmentHandler->isolateEnvironment(Object(Behat\Behat\Context\Environment\UninitializedContextEnvironment), Object(Behat\Gherkin\Node\ScenarioNode))
#5 T:\git\behatmink\vendor\behat\behat\src\Behat\Behat\Tester\Runtim in T:\git\behatmink\features\bootstrap\FeatureContent.php on line 28

Fatal error: Uncaught Error: Class 'Shelf' not found in T:\git\behatmink\features\bootstrap\FeatureContent.php:28
Stack trace:
#0 [internal function]: FeatureContent->__construct()
#1 T:\git\behatmink\vendor\behat\behat\src\Behat\Behat\Context\ContextFactory.php(136): ReflectionClass->newInstance()
#2 T:\git\behatmink\vendor\behat\behat\src\Behat\Behat\Context\ContextFactory.php(88): Behat\Behat\Context\ContextFactory->createInstance(Object(ReflectionClass), Array)
#3 T:\git\behatmink\vendor\behat\behat\src\Behat\Behat\Context\Environment\Handler\ContextEnvironmentHandler.php(121): Behat\Behat\Context\ContextFactory->createContext('FeatureContent', Array, Array)
#4 T:\git\behatmink\vendor\behat\behat\src\Behat\Testwork\Environment\EnvironmentManager.php(93): Behat\Behat\Context\Environment\Handler\ContextEnvironmentHandler->isolateEnvironment(Object(Behat\Behat\Context\Environment\UninitializedContextEnvironment), Object(Behat\Gherkin\Node\ScenarioNode))
#5 T:\git\behatmink\vendor\behat\behat\src\Behat\Behat\Tester\Runtim in T:\git\behatmink\features\bootstrap\FeatureContent.php on line 28

T:\git\behatmink
λ bin\behat

In UninitializedContextEnvironment.php line 44:

  `FeatureContext` context class not found and can not be used.

behat [-s|--suite SUITE] [-f|--format FORMAT] [-o|--out OUT] [--format-settings FORMAT-SETTINGS] [--init] [--lang LANG] [--name NAME] [--tags TAGS] [--role ROLE] [--story-syntax] [-d|--definitions DEFINITIONS] [--snippets-for [SNIPPETS-FOR]] [--snippets-type SNIPPETS-TYPE] [--append-snippets] [--no-snippets] [--strict] [--order ORDER] [--rerun] [--stop-on-failure] [--dry-run] [--] [<paths>]

T:\git\behatmink
λ bin\behat
//features/bootstrap/Shelf.php
final class Shelf{
}
In UninitializedContextEnvironment.php line 44:

  `Shelf` context class not found and can not be used.

behat [-s|--suite SUITE] [-f|--format FORMAT] [-o|--out OUT] [--format-settings FORMAT-SETTINGS] [--init] [--lang LANG] [--name NAME] [--tags TAGS] [--role ROLE] [--story-syntax] [-d|--definitions DEFINITIONS] [--snippets-for [SNIPPETS-FOR]] [--snippets-type SNIPPETS-TYPE] [--append-snippets] [--no-snippets] [--strict] [--order ORDER] [--rerun] [--stop-on-failure] [--dry-run] [--] [<paths>]

T:\git\behatmink
λ bin\behat
Feature: Product basket
  In order to buy products
  As a customer
  I need to be able to put interesting products into a basket

  Rules:
  - VAT is 20%
  - Delivery for basket under $10 is $3
  - Delivery for basket over $10 is $2

  Scenario: Buying a single product under $10               # features\basket.feature:11
    Given there is a "Sith Lord Lightsaber", which costs $5 # FeatureContent::thereIsAWhichCosts()
      TODO: write pending definition
    When I add the "Sith Lord Lightsaber" to the basket     # FeatureContent::iAddTheToTheBasket()
    Then I should have 1 product in the basket              # FeatureContent::iShouldHaveProductInTheBasket()
    And the overall basket price should be $9               # FeatureContent::theOverallBasketPriceShouldBe()

  Scenario: Buying a single product over $10                 # features\basket.feature:17
    Given there is a "Sith Lord Lightsaber", which costs $15 # FeatureContent::thereIsAWhichCosts()
      TODO: write pending definition
    When I add the "Sith Lord Lightsaber" to the basket      # FeatureContent::iAddTheToTheBasket()
    Then I should have 1 product in the basket               # FeatureContent::iShouldHaveProductInTheBasket()
    And the overall basket price should be $20               # FeatureContent::theOverallBasketPriceShouldBe()

  Scenario: Buying two products over $10                     # features\basket.feature:23
    Given there is a "Sith Lord Lightsaber", which costs $10 # FeatureContent::thereIsAWhichCosts()
      TODO: write pending definition
    And there is a "Jedi Lightsaber", which costs $5         # FeatureContent::thereIsAWhichCosts()
    When I add the "Sith Lord Lightsaber" to the basket      # FeatureContent::iAddTheToTheBasket()
    And I add the "Jedi Lightsaber" to the basket            # FeatureContent::iAddTheToTheBasket()
    Then I should have 2 products in the basket              # FeatureContent::iShouldHaveProductsInTheBasket()
    And the overall basket price should be $20               # FeatureContent::theOverallBasketPriceShouldBe()

3 scenarios (3 pending)
14 steps (3 pending, 11 skipped)
0m0.74s (9.93Mb)

T:\git\behatmink
λ bin\behat
Feature: Product basket
  In order to buy products
  As a customer
  I need to be able to put interesting products into a basket

  Rules:
  - VAT is 20%
  - Delivery for basket under $10 is $3
  - Delivery for basket over $10 is $2

  Scenario: Buying a single product under $10               # features\basket.feature:11
    Given there is a "Sith Lord Lightsaber", which costs $5 # FeatureContent::thereIsAWhichCosts()
      Fatal error: Call to undefined method Shelf::setProductPrice() (Behat\Testwork\Call\Exception\FatalThrowableError)
    When I add the "Sith Lord Lightsaber" to the basket     # FeatureContent::iAddTheToTheBasket()
    Then I should have 1 product in the basket              # FeatureContent::iShouldHaveProductInTheBasket()
    And the overall basket price should be $9               # FeatureContent::theOverallBasketPriceShouldBe()

  Scenario: Buying a single product over $10                 # features\basket.feature:17
    Given there is a "Sith Lord Lightsaber", which costs $15 # FeatureContent::thereIsAWhichCosts()
      Fatal error: Call to undefined method Shelf::setProductPrice() (Behat\Testwork\Call\Exception\FatalThrowableError)
    When I add the "Sith Lord Lightsaber" to the basket      # FeatureContent::iAddTheToTheBasket()
    Then I should have 1 product in the basket               # FeatureContent::iShouldHaveProductInTheBasket()
    And the overall basket price should be $20               # FeatureContent::theOverallBasketPriceShouldBe()

  Scenario: Buying two products over $10                     # features\basket.feature:23
    Given there is a "Sith Lord Lightsaber", which costs $10 # FeatureContent::thereIsAWhichCosts()
      Fatal error: Call to undefined method Shelf::setProductPrice() (Behat\Testwork\Call\Exception\FatalThrowableError)
    And there is a "Jedi Lightsaber", which costs $5         # FeatureContent::thereIsAWhichCosts()
    When I add the "Sith Lord Lightsaber" to the basket      # FeatureContent::iAddTheToTheBasket()
    And I add the "Jedi Lightsaber" to the basket            # FeatureContent::iAddTheToTheBasket()
    Then I should have 2 products in the basket              # FeatureContent::iShouldHaveProductsInTheBasket()
    And the overall basket price should be $20               # FeatureContent::theOverallBasketPriceShouldBe()

--- Failed scenarios:

    features\basket.feature:11
    features\basket.feature:17
    features\basket.feature:23

3 scenarios (3 failed)
14 steps (3 failed, 11 skipped)
0m0.56s (9.98Mb)

T:\git\behatmink
λ bin\behat
Feature: Product basket
  In order to buy products
  As a customer
  I need to be able to put interesting products into a basket

  Rules:
  - VAT is 20%
  - Delivery for basket under $10 is $3
  - Delivery for basket over $10 is $2

PHP Fatal error:  Uncaught ArgumentCountError: Too few arguments to function Basket::__construct(), 0 passed in T:\git\behatmink\features\bootstrap\FeatureContent.php on line 29 and exactly 1 expected in T:\git\behatmink\features\bootstrap\Basket.php:9
Stack trace:
#0 T:\git\behatmink\features\bootstrap\FeatureContent.php(29): Basket->__construct()
#1 [internal function]: FeatureContent->__construct()
#2 T:\git\behatmink\vendor\behat\behat\src\Behat\Behat\Context\ContextFactory.php(136): ReflectionClass->newInstance()
#3 T:\git\behatmink\vendor\behat\behat\src\Behat\Behat\Context\ContextFactory.php(88): Behat\Behat\Context\ContextFactory->createInstance(Object(ReflectionClass), Array)
#4 T:\git\behatmink\vendor\behat\behat\src\Behat\Behat\Context\Environment\Handler\ContextEnvironmentHandler.php(121): Behat\Behat\Context\ContextFactory->createContext('FeatureContent', Array, Array)
#5 T:\git\behatmink\vendor\behat\behat\src\Behat\Testwork\Environment\EnvironmentManager.php(93): Behat\Behat\Context\Environment\Handler\ContextEn in T:\git\behatmink\features\bootstrap\Basket.php on line 9

Fatal error: Uncaught ArgumentCountError: Too few arguments to function Basket::__construct(), 0 passed in T:\git\behatmink\features\bootstrap\FeatureContent.php on line 29 and exactly 1 expected in T:\git\behatmink\features\bootstrap\Basket.php:9
Stack trace:
#0 T:\git\behatmink\features\bootstrap\FeatureContent.php(29): Basket->__construct()
#1 [internal function]: FeatureContent->__construct()
#2 T:\git\behatmink\vendor\behat\behat\src\Behat\Behat\Context\ContextFactory.php(136): ReflectionClass->newInstance()
#3 T:\git\behatmink\vendor\behat\behat\src\Behat\Behat\Context\ContextFactory.php(88): Behat\Behat\Context\ContextFactory->createInstance(Object(ReflectionClass), Array)
#4 T:\git\behatmink\vendor\behat\behat\src\Behat\Behat\Context\Environment\Handler\ContextEnvironmentHandler.php(121): Behat\Behat\Context\ContextFactory->createContext('FeatureContent', Array, Array)
#5 T:\git\behatmink\vendor\behat\behat\src\Behat\Testwork\Environment\EnvironmentManager.php(93): Behat\Behat\Context\Environment\Handler\ContextEn in T:\git\behatmink\features\bootstrap\Basket.php on line 9

T:\git\behatmink
λ bin\behat
Feature: Product basket
  In order to buy products
  As a customer
  I need to be able to put interesting products into a basket

  Rules:
  - VAT is 20%
  - Delivery for basket under $10 is $3
  - Delivery for basket over $10 is $2

  Scenario: Buying a single product under $10               # features\basket.feature:11
    Given there is a "Sith Lord Lightsaber", which costs $5 # FeatureContent::thereIsAWhichCosts()
    When I add the "Sith Lord Lightsaber" to the basket     # FeatureContent::iAddTheToTheBasket()
    Then I should have 1 product in the basket              # FeatureContent::iShouldHaveProductInTheBasket()
      Fatal error: Call to undefined method FeatureContent::assertCount() (Behat\Testwork\Call\Exception\FatalThrowableError)
    And the overall basket price should be $9               # FeatureContent::theOverallBasketPriceShouldBe()

  Scenario: Buying a single product over $10                 # features\basket.feature:17
    Given there is a "Sith Lord Lightsaber", which costs $15 # FeatureContent::thereIsAWhichCosts()
    When I add the "Sith Lord Lightsaber" to the basket      # FeatureContent::iAddTheToTheBasket()
    Then I should have 1 product in the basket               # FeatureContent::iShouldHaveProductInTheBasket()
      Fatal error: Call to undefined method FeatureContent::assertCount() (Behat\Testwork\Call\Exception\FatalThrowableError)
    And the overall basket price should be $20               # FeatureContent::theOverallBasketPriceShouldBe()

  Scenario: Buying two products over $10                     # features\basket.feature:23
    Given there is a "Sith Lord Lightsaber", which costs $10 # FeatureContent::thereIsAWhichCosts()
    And there is a "Jedi Lightsaber", which costs $5         # FeatureContent::thereIsAWhichCosts()
    When I add the "Sith Lord Lightsaber" to the basket      # FeatureContent::iAddTheToTheBasket()
    And I add the "Jedi Lightsaber" to the basket            # FeatureContent::iAddTheToTheBasket()
    Then I should have 2 products in the basket              # FeatureContent::iShouldHaveProductsInTheBasket()
      Fatal error: Call to undefined method FeatureContent::assertCount() (Behat\Testwork\Call\Exception\FatalThrowableError)
    And the overall basket price should be $20               # FeatureContent::theOverallBasketPriceShouldBe()

--- Failed scenarios:

    features\basket.feature:11
    features\basket.feature:17
    features\basket.feature:23

3 scenarios (3 failed)
14 steps (8 passed, 3 failed, 3 skipped)
0m0.60s (9.99Mb)

T:\git\behatmink
λ bin\behat
Feature: Product basket
  In order to buy products
  As a customer
  I need to be able to put interesting products into a basket

  Rules:
  - VAT is 20%
  - Delivery for basket under $10 is $3
  - Delivery for basket over $10 is $2

  Scenario: Buying a single product under $10               # features\basket.feature:11
    Given there is a "Sith Lord Lightsaber", which costs $5 # FeatureContent::thereIsAWhichCosts()
    When I add the "Sith Lord Lightsaber" to the basket     # FeatureContent::iAddTheToTheBasket()
    Then I should have 1 product in the basket              # FeatureContent::iShouldHaveProductInTheBasket()
      Fatal error: Call to undefined function assertTrue() (Behat\Testwork\Call\Exception\FatalThrowableError)
    And the overall basket price should be $9               # FeatureContent::theOverallBasketPriceShouldBe()

  Scenario: Buying a single product over $10                 # features\basket.feature:17
    Given there is a "Sith Lord Lightsaber", which costs $15 # FeatureContent::thereIsAWhichCosts()
    When I add the "Sith Lord Lightsaber" to the basket      # FeatureContent::iAddTheToTheBasket()
    Then I should have 1 product in the basket               # FeatureContent::iShouldHaveProductInTheBasket()
      Fatal error: Call to undefined function assertTrue() (Behat\Testwork\Call\Exception\FatalThrowableError)
    And the overall basket price should be $20               # FeatureContent::theOverallBasketPriceShouldBe()

  Scenario: Buying two products over $10                     # features\basket.feature:23
    Given there is a "Sith Lord Lightsaber", which costs $10 # FeatureContent::thereIsAWhichCosts()
    And there is a "Jedi Lightsaber", which costs $5         # FeatureContent::thereIsAWhichCosts()
    When I add the "Sith Lord Lightsaber" to the basket      # FeatureContent::iAddTheToTheBasket()
    And I add the "Jedi Lightsaber" to the basket            # FeatureContent::iAddTheToTheBasket()
    Then I should have 2 products in the basket              # FeatureContent::iShouldHaveProductsInTheBasket()
      Fatal error: Call to undefined method FeatureContent::assertCount() (Behat\Testwork\Call\Exception\FatalThrowableError)
    And the overall basket price should be $20               # FeatureContent::theOverallBasketPriceShouldBe()

--- Failed scenarios:

    features\basket.feature:11
    features\basket.feature:17
    features\basket.feature:23

3 scenarios (3 failed)
14 steps (8 passed, 3 failed, 3 skipped)
0m0.93s (9.99Mb)

T:\git\behatmink
λ bin\behat
Feature: Product basket
  In order to buy products
  As a customer
  I need to be able to put interesting products into a basket

  Rules:
  - VAT is 20%
  - Delivery for basket under $10 is $3
  - Delivery for basket over $10 is $2

  Scenario: Buying a single product under $10               # features\basket.feature:11
    Given there is a "Sith Lord Lightsaber", which costs $5 # FeatureContent::thereIsAWhichCosts()
    When I add the "Sith Lord Lightsaber" to the basket     # FeatureContent::iAddTheToTheBasket()
    Then I should have 1 product in the basket              # FeatureContent::iShouldHaveProductInTheBasket()
    And the overall basket price should be $9               # FeatureContent::theOverallBasketPriceShouldBe()
      Fatal error: Call to undefined method FeatureContent::assertSame() (Behat\Testwork\Call\Exception\FatalThrowableError)

  Scenario: Buying a single product over $10                 # features\basket.feature:17
    Given there is a "Sith Lord Lightsaber", which costs $15 # FeatureContent::thereIsAWhichCosts()
    When I add the "Sith Lord Lightsaber" to the basket      # FeatureContent::iAddTheToTheBasket()
    Then I should have 1 product in the basket               # FeatureContent::iShouldHaveProductInTheBasket()
    And the overall basket price should be $20               # FeatureContent::theOverallBasketPriceShouldBe()
      Fatal error: Call to undefined method FeatureContent::assertSame() (Behat\Testwork\Call\Exception\FatalThrowableError)

  Scenario: Buying two products over $10                     # features\basket.feature:23
    Given there is a "Sith Lord Lightsaber", which costs $10 # FeatureContent::thereIsAWhichCosts()
    And there is a "Jedi Lightsaber", which costs $5         # FeatureContent::thereIsAWhichCosts()
    When I add the "Sith Lord Lightsaber" to the basket      # FeatureContent::iAddTheToTheBasket()
    And I add the "Jedi Lightsaber" to the basket            # FeatureContent::iAddTheToTheBasket()
    Then I should have 2 products in the basket              # FeatureContent::iShouldHaveProductsInTheBasket()
      Fatal error: Call to undefined method FeatureContent::assertCount() (Behat\Testwork\Call\Exception\FatalThrowableError)
    And the overall basket price should be $20               # FeatureContent::theOverallBasketPriceShouldBe()

--- Failed scenarios:

    features\basket.feature:11
    features\basket.feature:17
    features\basket.feature:23

3 scenarios (3 failed)
14 steps (10 passed, 3 failed, 1 skipped)
0m0.81s (10.32Mb)

T:\git\behatmink
λ bin\behat
Feature: Product basket
  In order to buy products
  As a customer
  I need to be able to put interesting products into a basket

  Rules:
  - VAT is 20%
  - Delivery for basket under $10 is $3
  - Delivery for basket over $10 is $2

  Scenario: Buying a single product under $10               # features\basket.feature:11
    Given there is a "Sith Lord Lightsaber", which costs $5 # FeatureContent::thereIsAWhichCosts()
    When I add the "Sith Lord Lightsaber" to the basket     # FeatureContent::iAddTheToTheBasket()
    Then I should have 1 product in the basket              # FeatureContent::iShouldHaveProductInTheBasket()
      Notice: Use of undefined constant basket - assumed 'basket' in features\bootstrap\FeatureContent.php line 58
    And the overall basket price should be $9               # FeatureContent::theOverallBasketPriceShouldBe()

  Scenario: Buying a single product over $10                 # features\basket.feature:17
    Given there is a "Sith Lord Lightsaber", which costs $15 # FeatureContent::thereIsAWhichCosts()
    When I add the "Sith Lord Lightsaber" to the basket      # FeatureContent::iAddTheToTheBasket()
    Then I should have 1 product in the basket               # FeatureContent::iShouldHaveProductInTheBasket()
      Notice: Use of undefined constant basket - assumed 'basket' in features\bootstrap\FeatureContent.php line 58
    And the overall basket price should be $20               # FeatureContent::theOverallBasketPriceShouldBe()

  Scenario: Buying two products over $10                     # features\basket.feature:23
    Given there is a "Sith Lord Lightsaber", which costs $10 # FeatureContent::thereIsAWhichCosts()
    And there is a "Jedi Lightsaber", which costs $5         # FeatureContent::thereIsAWhichCosts()
    When I add the "Sith Lord Lightsaber" to the basket      # FeatureContent::iAddTheToTheBasket()
    And I add the "Jedi Lightsaber" to the basket            # FeatureContent::iAddTheToTheBasket()
    Then I should have 2 products in the basket              # FeatureContent::iShouldHaveProductsInTheBasket()
      Fatal error: Call to undefined method FeatureContent::assertCount() (Behat\Testwork\Call\Exception\FatalThrowableError)
    And the overall basket price should be $20               # FeatureContent::theOverallBasketPriceShouldBe()

--- Failed scenarios:

    features\basket.feature:11
    features\basket.feature:17
    features\basket.feature:23

3 scenarios (3 failed)
14 steps (8 passed, 3 failed, 3 skipped)
0m0.73s (9.96Mb)

T:\git\behatmink
λ bin\behat
Feature: Product basket
  In order to buy products
  As a customer
  I need to be able to put interesting products into a basket

  Rules:
  - VAT is 20%
  - Delivery for basket under $10 is $3
  - Delivery for basket over $10 is $2

  Scenario: Buying a single product under $10               # features\basket.feature:11
    Given there is a "Sith Lord Lightsaber", which costs $5 # FeatureContent::thereIsAWhichCosts()
    When I add the "Sith Lord Lightsaber" to the basket     # FeatureContent::iAddTheToTheBasket()
    Then I should have 1 product in the basket              # FeatureContent::iShouldHaveProductInTheBasket()
      Notice: Object of class Basket could not be converted to int in features\bootstrap\FeatureContent.php line 58
    And the overall basket price should be $9               # FeatureContent::theOverallBasketPriceShouldBe()

  Scenario: Buying a single product over $10                 # features\basket.feature:17
    Given there is a "Sith Lord Lightsaber", which costs $15 # FeatureContent::thereIsAWhichCosts()
    When I add the "Sith Lord Lightsaber" to the basket      # FeatureContent::iAddTheToTheBasket()
    Then I should have 1 product in the basket               # FeatureContent::iShouldHaveProductInTheBasket()
      Notice: Object of class Basket could not be converted to int in features\bootstrap\FeatureContent.php line 58
    And the overall basket price should be $20               # FeatureContent::theOverallBasketPriceShouldBe()

  Scenario: Buying two products over $10                     # features\basket.feature:23
    Given there is a "Sith Lord Lightsaber", which costs $10 # FeatureContent::thereIsAWhichCosts()
    And there is a "Jedi Lightsaber", which costs $5         # FeatureContent::thereIsAWhichCosts()
    When I add the "Sith Lord Lightsaber" to the basket      # FeatureContent::iAddTheToTheBasket()
    And I add the "Jedi Lightsaber" to the basket            # FeatureContent::iAddTheToTheBasket()
    Then I should have 2 products in the basket              # FeatureContent::iShouldHaveProductsInTheBasket()
      Fatal error: Call to undefined method FeatureContent::assertCount() (Behat\Testwork\Call\Exception\FatalThrowableError)
    And the overall basket price should be $20               # FeatureContent::theOverallBasketPriceShouldBe()

--- Failed scenarios:

    features\basket.feature:11
    features\basket.feature:17
    features\basket.feature:23

3 scenarios (3 failed)
14 steps (8 passed, 3 failed, 3 skipped)
0m0.66s (9.96Mb)

T:\git\behatmink
λ bin\behat
Feature: Product basket
  In order to buy products
  As a customer
  I need to be able to put interesting products into a basket

  Rules:
  - VAT is 20%
  - Delivery for basket under $10 is $3
  - Delivery for basket over $10 is $2

  Scenario: Buying a single product under $10               # features\basket.feature:11
    Given there is a "Sith Lord Lightsaber", which costs $5 # FeatureContent::thereIsAWhichCosts()
    When I add the "Sith Lord Lightsaber" to the basket     # FeatureContent::iAddTheToTheBasket()
    Then I should have 1 product in the basket              # FeatureContent::iShouldHaveProductInTheBasket()
      Notice: Object of class Basket could not be converted to int in features\bootstrap\FeatureContent.php line 59
    And the overall basket price should be $9               # FeatureContent::theOverallBasketPriceShouldBe()

  Scenario: Buying a single product over $10                 # features\basket.feature:17
    Given there is a "Sith Lord Lightsaber", which costs $15 # FeatureContent::thereIsAWhichCosts()
    When I add the "Sith Lord Lightsaber" to the basket      # FeatureContent::iAddTheToTheBasket()
    Then I should have 1 product in the basket               # FeatureContent::iShouldHaveProductInTheBasket()
      Notice: Object of class Basket could not be converted to int in features\bootstrap\FeatureContent.php line 59
    And the overall basket price should be $20               # FeatureContent::theOverallBasketPriceShouldBe()

  Scenario: Buying two products over $10                     # features\basket.feature:23
    Given there is a "Sith Lord Lightsaber", which costs $10 # FeatureContent::thereIsAWhichCosts()
    And there is a "Jedi Lightsaber", which costs $5         # FeatureContent::thereIsAWhichCosts()
    When I add the "Sith Lord Lightsaber" to the basket      # FeatureContent::iAddTheToTheBasket()
    And I add the "Jedi Lightsaber" to the basket            # FeatureContent::iAddTheToTheBasket()
    Then I should have 2 products in the basket              # FeatureContent::iShouldHaveProductsInTheBasket()
      Fatal error: Call to undefined method FeatureContent::assertCount() (Behat\Testwork\Call\Exception\FatalThrowableError)
    And the overall basket price should be $20               # FeatureContent::theOverallBasketPriceShouldBe()

--- Failed scenarios:

    features\basket.feature:11
    features\basket.feature:17
    features\basket.feature:23

3 scenarios (3 failed)
14 steps (8 passed, 3 failed, 3 skipped)
0m0.66s (9.96Mb)

T:\git\behatmink
λ bin\behat
Feature: Product basket
  In order to buy products
  As a customer
  I need to be able to put interesting products into a basket

  Rules:
  - VAT is 20%
  - Delivery for basket under $10 is $3
  - Delivery for basket over $10 is $2

  Scenario: Buying a single product under $10               # features\basket.feature:11
    Given there is a "Sith Lord Lightsaber", which costs $5 # FeatureContent::thereIsAWhichCosts()
    When I add the "Sith Lord Lightsaber" to the basket     # FeatureContent::iAddTheToTheBasket()
    Then I should have 1 product in the basket              # FeatureContent::iShouldHaveProductInTheBasket()
    And the overall basket price should be $9               # FeatureContent::theOverallBasketPriceShouldBe()
      Fatal error: Call to undefined method FeatureContent::assertSame() (Behat\Testwork\Call\Exception\FatalThrowableError)

  Scenario: Buying a single product over $10                 # features\basket.feature:17
    Given there is a "Sith Lord Lightsaber", which costs $15 # FeatureContent::thereIsAWhichCosts()
    When I add the "Sith Lord Lightsaber" to the basket      # FeatureContent::iAddTheToTheBasket()
    Then I should have 1 product in the basket               # FeatureContent::iShouldHaveProductInTheBasket()
    And the overall basket price should be $20               # FeatureContent::theOverallBasketPriceShouldBe()
      Fatal error: Call to undefined method FeatureContent::assertSame() (Behat\Testwork\Call\Exception\FatalThrowableError)

  Scenario: Buying two products over $10                     # features\basket.feature:23
    Given there is a "Sith Lord Lightsaber", which costs $10 # FeatureContent::thereIsAWhichCosts()
    And there is a "Jedi Lightsaber", which costs $5         # FeatureContent::thereIsAWhichCosts()
    When I add the "Sith Lord Lightsaber" to the basket      # FeatureContent::iAddTheToTheBasket()
    And I add the "Jedi Lightsaber" to the basket            # FeatureContent::iAddTheToTheBasket()
    Then I should have 2 products in the basket              # FeatureContent::iShouldHaveProductsInTheBasket()
      Fatal error: Call to undefined method FeatureContent::assertCount() (Behat\Testwork\Call\Exception\FatalThrowableError)
    And the overall basket price should be $20               # FeatureContent::theOverallBasketPriceShouldBe()

--- Failed scenarios:

    features\basket.feature:11
    features\basket.feature:17
    features\basket.feature:23

3 scenarios (3 failed)
14 steps (10 passed, 3 failed, 1 skipped)
0m1.02s (10.32Mb)

T:\git\behatmink
λ bin\behat
Feature: Product basket
  In order to buy products
  As a customer
  I need to be able to put interesting products into a basket

  Rules:
  - VAT is 20%
  - Delivery for basket under $10 is $3
  - Delivery for basket over $10 is $2

  Scenario: Buying a single product under $10               # features\basket.feature:11
    Given there is a "Sith Lord Lightsaber", which costs $5 # FeatureContent::thereIsAWhichCosts()
    When I add the "Sith Lord Lightsaber" to the basket     # FeatureContent::iAddTheToTheBasket()
    Then I should have 1 product in the basket              # FeatureContent::iShouldHaveProductInTheBasket()
    And the overall basket price should be $9               # FeatureContent::theOverallBasketPriceShouldBe()
      Fatal error: Call to undefined method FeatureContent::assertSame() (Behat\Testwork\Call\Exception\FatalThrowableError)

  Scenario: Buying a single product over $10                 # features\basket.feature:17
    Given there is a "Sith Lord Lightsaber", which costs $15 # FeatureContent::thereIsAWhichCosts()
    When I add the "Sith Lord Lightsaber" to the basket      # FeatureContent::iAddTheToTheBasket()
    Then I should have 1 product in the basket               # FeatureContent::iShouldHaveProductInTheBasket()
    And the overall basket price should be $20               # FeatureContent::theOverallBasketPriceShouldBe()
      Fatal error: Call to undefined method FeatureContent::assertSame() (Behat\Testwork\Call\Exception\FatalThrowableError)

  Scenario: Buying two products over $10                     # features\basket.feature:23
    Given there is a "Sith Lord Lightsaber", which costs $10 # FeatureContent::thereIsAWhichCosts()
    And there is a "Jedi Lightsaber", which costs $5         # FeatureContent::thereIsAWhichCosts()
    When I add the "Sith Lord Lightsaber" to the basket      # FeatureContent::iAddTheToTheBasket()
    And I add the "Jedi Lightsaber" to the basket            # FeatureContent::iAddTheToTheBasket()
    Then I should have 2 products in the basket              # FeatureContent::iShouldHaveProductsInTheBasket()
      Fatal error: Call to undefined method FeatureContent::assertCount() (Behat\Testwork\Call\Exception\FatalThrowableError)
    And the overall basket price should be $20               # FeatureContent::theOverallBasketPriceShouldBe()

--- Failed scenarios:

    features\basket.feature:11
    features\basket.feature:17
    features\basket.feature:23

3 scenarios (3 failed)
14 steps (10 passed, 3 failed, 1 skipped)
0m0.95s (10.32Mb)

T:\git\behatmink
λ bin\behat
Feature: Product basket
  In order to buy products
  As a customer
  I need to be able to put interesting products into a basket

  Rules:
  - VAT is 20%
  - Delivery for basket under $10 is $3
  - Delivery for basket over $10 is $2

  Scenario: Buying a single product under $10               # features\basket.feature:11
    Given there is a "Sith Lord Lightsaber", which costs $5 # FeatureContent::thereIsAWhichCosts()
    When I add the "Sith Lord Lightsaber" to the basket     # FeatureContent::iAddTheToTheBasket()
    Then I should have 1 product in the basket              # FeatureContent::iShouldHaveProductInTheBasket()
    And the overall basket price should be $9               # FeatureContent::theOverallBasketPriceShouldBe()
      Fatal error: Call to undefined method FeatureContent::assertSame() (Behat\Testwork\Call\Exception\FatalThrowableError)

  Scenario: Buying a single product over $10                 # features\basket.feature:17
    Given there is a "Sith Lord Lightsaber", which costs $15 # FeatureContent::thereIsAWhichCosts()
    When I add the "Sith Lord Lightsaber" to the basket      # FeatureContent::iAddTheToTheBasket()
    Then I should have 1 product in the basket               # FeatureContent::iShouldHaveProductInTheBasket()
    And the overall basket price should be $20               # FeatureContent::theOverallBasketPriceShouldBe()
      Fatal error: Call to undefined method FeatureContent::assertSame() (Behat\Testwork\Call\Exception\FatalThrowableError)

  Scenario: Buying two products over $10                     # features\basket.feature:23
    Given there is a "Sith Lord Lightsaber", which costs $10 # FeatureContent::thereIsAWhichCosts()
    And there is a "Jedi Lightsaber", which costs $5         # FeatureContent::thereIsAWhichCosts()
    When I add the "Sith Lord Lightsaber" to the basket      # FeatureContent::iAddTheToTheBasket()
    And I add the "Jedi Lightsaber" to the basket            # FeatureContent::iAddTheToTheBasket()
    Then I should have 2 products in the basket              # FeatureContent::iShouldHaveProductsInTheBasket()
    And the overall basket price should be $20               # FeatureContent::theOverallBasketPriceShouldBe()
      Fatal error: Call to undefined method FeatureContent::assertSame() (Behat\Testwork\Call\Exception\FatalThrowableError)

--- Failed scenarios:

    features\basket.feature:11
    features\basket.feature:17
    features\basket.feature:23

3 scenarios (3 failed)
14 steps (11 passed, 3 failed)
0m0.70s (10.32Mb)

T:\git\behatmink
λ bin\behat
Feature: Product basket
  In order to buy products
  As a customer
  I need to be able to put interesting products into a basket

  Rules:
  - VAT is 20%
  - Delivery for basket under $10 is $3
  - Delivery for basket over $10 is $2

  Scenario: Buying a single product under $10               # features\basket.feature:11
    Given there is a "Sith Lord Lightsaber", which costs $5 # FeatureContent::thereIsAWhichCosts()
    When I add the "Sith Lord Lightsaber" to the basket     # FeatureContent::iAddTheToTheBasket()
    Then I should have 1 product in the basket              # FeatureContent::iShouldHaveProductInTheBasket()
    And the overall basket price should be $9               # FeatureContent::theOverallBasketPriceShouldBe()

  Scenario: Buying a single product over $10                 # features\basket.feature:17
    Given there is a "Sith Lord Lightsaber", which costs $15 # FeatureContent::thereIsAWhichCosts()
    When I add the "Sith Lord Lightsaber" to the basket      # FeatureContent::iAddTheToTheBasket()
    Then I should have 1 product in the basket               # FeatureContent::iShouldHaveProductInTheBasket()
    And the overall basket price should be $20               # FeatureContent::theOverallBasketPriceShouldBe()

  Scenario: Buying two products over $10                     # features\basket.feature:23
    Given there is a "Sith Lord Lightsaber", which costs $10 # FeatureContent::thereIsAWhichCosts()
    And there is a "Jedi Lightsaber", which costs $5         # FeatureContent::thereIsAWhichCosts()
    When I add the "Sith Lord Lightsaber" to the basket      # FeatureContent::iAddTheToTheBasket()
    And I add the "Jedi Lightsaber" to the basket            # FeatureContent::iAddTheToTheBasket()
    Then I should have 2 products in the basket              # FeatureContent::iShouldHaveProductsInTheBasket()
    And the overall basket price should be $20               # FeatureContent::theOverallBasketPriceShouldBe()

3 scenarios (3 passed)
14 steps (14 passed)
0m0.67s (10.27Mb)

T:\git\behatmink
λ