微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – Yii Fixtures问题?

我似乎在Yii有固定装置的问题.问题似乎如下,

public $fixtures=array('projects'=>'Project'); 

模型项目存在,我在测试的fixtures文件夹中的文件名为tbl_project.PHP,并且我的表名称为tbl_project.夹具文件内部如下.

return array(
        'project1' => array(
            'name' => 'Test Project 1',
            'description' => 'This is test project 1',
            'create_time' => '',
            'create_user_id' => '',
            'update_time' => '',
            'update_user_id' => '',
         ),
        'project2' => array(
            'name' => 'Test Project 2',
            'description' => 'This is test project 2',
            'create_time' => '',
            'create_user_id' => '',
            'update_time' => '',
            'update_user_id' => '',
         ),
        'project3' => array(
            'name' => 'Test Project 3',
            'description' => 'This is test project 3',
            'create_time' => '',
            'create_user_id' => '',
            'update_time' => '',
            'update_user_id' => '',
         ),
    );       

这实际上来自“使用Yii进行敏捷Web应用程序开发”一书.当我运行测试用例时,我得到以下内容,没有测试结果信息.

PHPUnit 3.6.10 by Sebastian Bergmann.

Configuration read from ETC/protected/tests/PHPunit.xml

如果我从顶部移除灯具阵列,我得到以下内容.

Time: 0 seconds, Memory: 9.25Mb

There was 1 error:

1) ProjectTest::testRead
Exception: UnkNown method 'projects' for class 'ProjectTest'. 

这显然是有道理的.我不知道我做错了什么.

解决方法:

>确保测试类看起来像这样


    class ProjectTest extends CDbTestCase{

    protected $fixtures = array(
                'projects' => 'Project',
            );

    public function testRead(){

        $receivedProject = $this->projects('Project1');
        $this->assertTrue($receivedProject instanceof Project);
        $this->assertEquals($receivedProject->name,'test 1');
    }
    ...`

>检查protected / config / test.PHP中的夹具配置……应该看起来像……



    ...
    'components'=>array(
            'fixture'=>array(
                'class'=>'system.test.CDbFixtureManager',
            ),
                        'db'=>array(
                            'connectionString' =>'MysqL:host=localhost;dbname=your_db_name',
                            'emulatePrepare' => true,
                            'username' => 'username',
                            'password' => 'passwd',
                            'charset' => 'utf8',
                        ),
    ....

>最终检查夹具文件的权限,确保可以读取

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐