Не получается работа с Fixtures

Всё про тестирование в Yii 2.0
Ответить
anmaslov
Сообщения: 15
Зарегистрирован: 2014.05.15, 12:06

Не получается работа с Fixtures

Сообщение anmaslov »

Простите за глупейший вопрос:

Пробую на шаблоне yii2-app-basic.
Делаю все по мануалу https://github.com/yiisoft/yii2/blob/ma ... ixtures.md:

Создаю файл StyleFixture.php, по пути tests/codeception/fixturies

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

<?php

namespace app\tests\fixtures;

use yii\test\ActiveFixture;

class StyleFixture extends ActiveFixture
{
    public $modelClass = 'app\models\Style';
}
 
Затем создаю tests/codeception/fixturies/data/style.php

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

<?php
return [
    'style1' => [
        'name' => 'yeti',
        'title' => 'yeti-txt',
    ],
    'style2' => [
        'name' => 'united',
        'title' => 'unity style',
    ],
]; 
И наконец сам файл тестов: tests/codeception/unit/models/StyleTest.php

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

<?php

namespace tests\codeception\unit\models;

use yii\codeception\DbTestCase;
use app\tests\fixtures\StyleFixture;


class StyleTest extends DbTestCase
{
    public function fixtures()
    {
        return [
            'styles' => StyleFixture::className(),
        ];
    }

   // ...test methods...
} 
При запуске падает с ошибкой:

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

codecept run unit
Codeception PHP Testing Framework v2.0.12
Powered by PHPUnit 4.5.1 by Sebastian Bergmann and contributors.

Unit Tests (4) --------------------------------------------------------------------------------------------------
Test contact (tests\codeception\unit\models\ContactFormTest::testContact)                                  Ok
Test login no user (tests\codeception\unit\models\LoginFormTest::testLoginNoUser)                          Ok
Test login wrong password (tests\codeception\unit\models\LoginFormTest::testLoginWrongPassword)            Ok
<pre>PHP Fatal Error 'yii\base\ErrorException' with message 'Class 'app\tests\fixtures\StyleFixture' not found'

in W:\domains\page\tests\codeception\unit\models\StyleTest.php:14

Stack trace:
#0 [internal function]: yii\base\ErrorHandler->handleFatalError()
#1 {main}</pre>
 
Не правильно указан путь?

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

use app\tests\fixtures\StyleFixture
или опять чего то в конфиге забыл прописать?
unclead
Сообщения: 160
Зарегистрирован: 2015.03.13, 19:44

Re: Не получается работа с Fixtures

Сообщение unclead »

да укажите путь к фикстуре с использованием алиаса test, а не app

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

tests\codeception\fixtures\StyleFixture
ну и у фикстуры namespace должен быть аналогичным
anmaslov
Сообщения: 15
Зарегистрирован: 2014.05.15, 12:06

Re: Не получается работа с Fixtures

Сообщение anmaslov »

Получилось, спасибо, теперь хотя бы выполнилось без ошибки!

Только теперь затерлась таблица style, а фикстуры так и не применились:

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

<?php
return [
    'style1' => [
        'name' => 'lmayert',
        'title' => 'test1',
    ],
    'style2' => [
        'name' => 'super-mega',
        'title' => 'wo-wo',
    ],
];
Аватара пользователя
Akulenok
Сообщения: 437
Зарегистрирован: 2014.05.05, 18:32
Откуда: localhost

Re: Не получается работа с Fixtures

Сообщение Akulenok »

Добрый вечер, делаю fixtures для новостей, и хотелось бы при load добавить картинку с удаленного сервера, как это можно сделать?
для аплоада картинок использую \vova07\fileapi\behaviors\UploadBehavior
ភាសាខ្មែរ Yii2 - это кайф!
Ответить