Из тестов не видно классов

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
psevdo
Сообщения: 96
Зарегистрирован: 2013.04.10, 11:10

Из тестов не видно классов

Сообщение psevdo »

Здравствуйте. Есть контроллер простейший.

Код: Выделить всё

namespace app\controllers;

use Yii;
use app\entities\Section\SectionEnt;

class SectionController extends BaseController {
	
	public function actionIndex() {
		echo 'test';
		new SectionEnt();
	}
Есть папка entities, в ней файл с классом.

Код: Выделить всё

namespace app\entities\Section;

class SectionEnt  {
	
	private $_id;
	private $_name;
	private $_status;
	
	public function __construct(SectionId $id, SectionName $name){
		
		$this->_id = $id;
		$this->_name = $name;
	}
Есть Юнит-тест

Код: Выделить всё

namespace tests\unit\entities;

use app\entities\Section\SectionEnt;
use Codeception\Test\Unit;

class CreateTest extends Unit {

    // tests
    public function testSomeFeature() {
		
		$section = new SectionEnt(
			$id = new SectionId(1),
			$name = new SectionName('Section')
		);
		
		// $this->assertEquals($id, $section->getId());
		// $this->assertEquals($name, $section->getName());
    }
}
Проблема в том, что когда запускаю тест, то получаю сообщение: класс SectionEnt не найден. Подскажите пожалуйста куда копать.
an.viktory@gmail.com
Сообщения: 536
Зарегистрирован: 2016.09.05, 23:21

Re: Из тестов не видно классов

Сообщение an.viktory@gmail.com »

перед тем как тесты начнутся надо подключить все то, что подлючает yii2 в файле index-test.php в так называемый bootstrap (предварительная загрузка, откорретируйте пути чтобы они были валидными, phpStorm подскает если что)

Код: Выделить всё

require(__DIR__ . '/../../vendor/autoload.php');
require(__DIR__ . '/../../vendor/yiisoft/yii2/Yii.php');
require(__DIR__ . '/../../common/config/bootstrap.php');
require(__DIR__ . '/../config/bootstrap.php');
$config = require(__DIR__ . '/../config/test-local.php');
PS: phpStorm любезно подставляет все классы в любое место проекта надеясь, что код который подтянет это (require(__DIR__ . '/../../vendor/yiisoft/yii2/Yii.php' в случае Классов Yii) в исполняемый файл будет. Если его не оказалось с тестовом скрипте то и появляется ошибка class not found.
Ответить