How To Configure Codeception In Advanced Template?

I’m using the advanced template and want to configure and run codeception tests.

I did the following:

  1. Install codeceptor using composer (in yii2 app root run php composer.phar require "codeception/codeception:*")

  2. In the frontend folder run vendor/bin/codecept build

  3. In the frontend folder run vendor/bin/codecept run

After that I saw exception:




Codeception PHP Testing Framework v2.0.0-RC

Powered by PHPUnit 4.2-dev by Sebastian Bergmann.


Fatal error: Class 'Guzzle\Http\Client' not found in W:\domains\mysite\www\vendor

\codeception\codeception\src\Codeception\Module\PhpBrowser.php on line 91


Call Stack:

    0.0000     134496   1. {main}() W:\domains\mysite\www\vendor\codeception\code

ception\codecept:0

    0.0320    1754336   2. Symfony\Component\Console\Application->run() W:\domai

ns\mysite\www\vendor\codeception\codeception\codecept:27

    0.0380    2019328   3. Symfony\Component\Console\Application->doRun() W:\dom

ains\mysite\www\vendor\symfony\console\Symfony\Component\Console\Application.php:

124

    0.0390    2019752   4. Symfony\Component\Console\Application->doRunCommand()

 W:\domains\mysite\www\vendor\symfony\console\Symfony\Component\Console\Applicati

on.php:193

    0.0390    2019960   5. Symfony\Component\Console\Command\Command->run() W:\d

omains\mysite\www\vendor\symfony\console\Symfony\Component\Console\Application.ph

p:897

    0.0390    2022144   6. Codeception\Command\Run->execute() W:\domains\mysite\w

ww\vendor\symfony\console\Symfony\Component\Console\Command\Command.php:252

    0.0880    3995264   7. Codeception\Command\Run->runSuites() W:\domains\mysite

\www\vendor\codeception\codeception\src\Codeception\Command\Run.php:148

    0.0880    3995672   8. Codeception\Codecept->run() W:\domains\mysite\www\vend

or\codeception\codeception\src\Codeception\Command\Run.php:197

    0.0950    3998368   9. Codeception\Codecept->runSuite() W:\domains\mysite\www

\vendor\codeception\codeception\src\Codeception\Codecept.php:155

    0.1310    5366112  10. Codeception\SuiteManager->initialize() W:\domains\gim

me\www\vendor\codeception\codeception\src\Codeception\Codecept.php:171

    0.1310    5366184  11. Codeception\SuiteManager->initializeModules() W:\doma

ins\mysite\www\vendor\codeception\codeception\src\Codeception\SuiteManager.php:64


    0.1380    5774416  12. Codeception\Module\PhpBrowser->_initialize() W:\domai

ns\mysite\www\vendor\codeception\codeception\src\Codeception\SuiteManager.php:75




Then I chaged the config W:\domains\mysite\www\frontend\tests\_bootstrap.php to look like this, but nothing is changed:




<?php


// the entry script URL (without host info) for functional and acceptance tests

// PLEASE ADJUST IT TO THE ACTUAL ENTRY SCRIPT URL

defined('TEST_ENTRY_URL') or define('TEST_ENTRY_URL', '/index-test.php');


// the entry script file path for functional and acceptance tests

defined('TEST_ENTRY_FILE') or define('TEST_ENTRY_FILE', dirname(__DIR__) . '/web/index-test.php');


defined('YII_DEBUG') or define('YII_DEBUG', true);


defined('YII_ENV') or define('YII_ENV', 'test');


require_once(__DIR__ . '/../../vendor/autoload.php');


require_once(__DIR__ . '/../../vendor/yiisoft/yii2/Yii.php');


require(__DIR__ . '/../../common/config/aliases.php');


// set correct script paths

$_SERVER['SCRIPT_FILENAME'] = TEST_ENTRY_FILE;

$_SERVER['SCRIPT_NAME'] = TEST_ENTRY_URL;

$_SERVER['SERVER_NAME'] = 'mysite';




Is it something else that I should configure?

Ok… Found the problem. Correct installation is:




php composer.phar require --dev "codeception/codeception: 1.8.*@dev" "codeception/specify: *" "codeception/verify: *"