Ошибка теста Behat после обновления до Behat 3.3.1 — Слишком мало аргументов для функции FeatureContext

#automated-tests #drupal-8 #behat

#автоматизированные тесты #drupal-8 #behat

Вопрос:

Я обновляю свой сайт Drupal 8 до версии 8.4.8, который автоматически обновляет behat до версии 3.3.1

Я только что узнал, что мой тест Behat больше не работает, и застрял на следующих ошибках.

Вот ошибка

 ArgumentCountError: Too few arguments to function DrupalFeatureContext::__construct(), 0 passed and exactly 1 expected in /var/www/mywebsite/tests/behat/features/bootstrap/Drupal/FeatureContext.php
  

Вот мой конструктор в FeatureContext.php файле

 /**
 * FeatureContext class defines custom step definitions for Behat.
 */
class FeatureContext extends PageObjectContext implements SnippetAcceptingContext {

  private $fourZeroFour;

  public function __construct(FourZeroFour $fourZeroFour) {
    $this->fourZeroFour = $fourZeroFour;
  }
  

Вот мой результат.yml

 imports:
  - behat.yml

local:
  suites:
    default:
      paths:
        # Set features to repo root so that .feature files belonging to contrib
        # modules, themes, and profiles can be discovered.
        features: /var/www/mywebsite
        bootstrap: /var/www/mywebsite/tests/behat/features/bootstrap
      contexts:
        - DrupalFeatureContext:
          parameters:
            environment:
              # absolute path to local directory to store screenshots - do not include trailing slash
              screenshot_dir: /var/www/mywebsite/reports
        - DrupalDrupalExtensionContextDrupalContext
        - DrupalDrupalExtensionContextMinkContext
        - DrupalDrupalExtensionContextMessageContext
        - DrupalDrupalExtensionContextDrushContext
  

Комментарии:

1. Вышеуказанная конфигурация хорошо работала в Behat 2, но я обновился до Behat 3, и она больше не работает.

Ответ №1:

Оказалось, что часть моей конфигурации отсутствовала в behat.файл yml.

Часть отсутствовала:

 SensioLabsBehatPageObjectExtension:
  namespaces:
    page: Page
    element: PageElement