Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Codeception 2.1 исправление бага issue 1818 fix 1819


(Andrey Kurilov) #1

Кто знает когда фикс будет в стабильном релизе?
Issue https://github.com/Codeception/Codeception/issues/1818
Fix: https://github.com/Codeception/Codeception/pull/1819
codecept.phar скачал сегодня
Уважаемый @davert мне очень нужен этот фикс, иначе придется откатываться на предыдущую версию.
В тесте это выглядит так:

use Codeception\Module\MailHelper;
$message = new MailHelper($scenario);

Сам хелпер построен так

<?php
namespace Codeception\Module;

use Codeception\Module;
class MailHelper extends Module
{
}

(Michael Bodnarchuk) #2

Можно обьяснить в чем проблема и какое отношение это имеет к фиксу и проблеме. Просто там упомянуты проблемы в REST и PhpBrowser


(Andrey Kurilov) #3

Используется модуль webdriver + phantomjs\Firefox
Сейчас все работает в таком виде
настройки модуля в acceptance.suite.yml

modules:
enabled:
    - WebDriver
    - AcceptanceHelper
    - TariffsHelper
    - MailHelper

tests/_support/MailHelper.php

<?php
namespace Codeception\Module;
class MailHelper extends \Codeception\Module
{
}

В тесте

$message = new \Codeception\Module\MailHelper();
$body = $message->getBodyBySubject($subject)

php codecept.phar -V

Codeception version 2.0.13

После обновления до 2.1.0 плучаю ошибку

  [PHPUnit_Framework_Exception] Argument 1 passed to Codeception\Module::__construct() must be an instance of Codeception\Lib\ModuleContainer, none given, called in /home/andrey/front/autotests/tests/acceptance/common/mailings/edit/sendSingleMailCept.php on line 26 and defined

26-я строка

$message = new \Codeception\Module\MailHelper();

(Konstantin) #4

у меня была похожая проблема, решил её таким образом:

  1. избавился от $message = new \Codeception\Module\MailHelper();
  2. добавил просто в аргументы функции:

public function someFunc(WebGuy $I, \Codeception\Module\MailHelper $message){}


(Andrey Kurilov) #5

Я решил эту проблему.
Сейчас у меня так. В tests/support/MailTester.php

<?php
    class MailTester extends \Codeception\Actor
{}

В тесте

$message = new MailTester($scenario);