Здравствуйте!
Производится unit-тестирование проекта на yii2, с использованием codeception.
Выполняется команда:
php codecept.phar run --debug unit ExampleTest
Код теста:
<?php
class ExampleTest extends \Codeception\Test\Unit
{
/**
* @var \UnitTester
*/
protected $tester;
protected function _before()
{
}
protected function _after()
{
}
// tests
public function testSomeFeature()
{
}
public function testSomeFeature2()
{
}
}
В результате теста, на методе testSomeFeature2(), вываливается ошибка:
- ExampleTest: Some feature
[Database] Transaction started
+ ExampleTest: Some feature (0.01s)
[Database] Transaction cancelled; all changes reverted.
- ExampleTest: Some feature2
Fatal error: Cannot declare class Yii, because the name is already in use in C:\OSPanel\domains\yii2tests.loc\vendor\yiisoft\yii2\Yii.php on line 21
Если, тестировать только 1 метод, то все работает нормально.
Конфиг файлы.
unit.suite.xml
# Codeception Test Suite Configuration
# suite for unit (internal) tests.
# RUN `build` COMMAND AFTER ADDING/REMOVING MODULES.
class_name: UnitTester
modules:
enabled:
- Asserts
- Yii2:
configFile: 'tests/config/unit.php'
part: [orm, email]
/tests/config/unit.php
<?php
/**
* Application configuration for acceptance tests
*/
require(__DIR__ . '/../../vendor/autoload.php');
require(__DIR__ . '/../../vendor/yiisoft/yii2/Yii.php');
return yii\helpers\ArrayHelper::merge(
require(__DIR__ . '/../../config/web.php'),
require(__DIR__ . '/config.php'),
[]
);
Почему появляется ошибка "Fatal error: Cannot declare class Yii, because the name is already in use", именно при тестировании нескольких методов и как ее исправить?