我似乎在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] 举报,一经查实,本站将立刻删除。