0

私は「yii 1.1 と php5 を使用したアジャイル Web アプリケーション開発」の本を読んでいて、フィクスチャのセクションでテストしています。私は彼らのコードに従いましたが、フィクスチャにアクセスできません...

PHPunitでフィクスチャを構成した後、第6章で単体テストを実行していますが、これが返されます

Last login: Sat Oct  6 20:09:36 on ttys000
xyz-MacBook-Pro:~ inganious$ /usr/local/bin/phpunit/phpunit /Applications/MAMP/htdocs/trackstar/protected/tests/unit/ProjectTest.php

Fatal error: Class 'CDbTestCase' not found in /Applications/MAMP/htdocs/trackstar/protected/tests/unit/ProjectTest.php on line 3
xyz-MacBook-Pro:~ inganious$ 

ここに私の ProjectTest.php ファイルがあります

class ProjectTest extends CDbTestCase
{

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

    public function testCreate()
      {
        //CREATE a new Project
        $newProject=new Project;
        $newProjectName = 'Test Project Creation';
        $newProject->setAttributes(array(
        'name' => $newProjectName,
        'description' => 'This is a test for new project creation',
        'createTime' => '2009-09-09 00:00:00',
        'createUser' => '1',
        'updateTime' => '2009-09-09 00:00:00',
        'updateUser' => '1',
        )
      );
        $this->assertTrue($newProject->save(false));
        //READ back the newly created Project to ensure the creation worked

        $retrievedProject=Project::model()->findByPk($newProject->id);
        $this->assertTrue($retrievedProject instanceof Project);
        $this->assertEquals($newProjectName,$retrievedProject->name);
      }
        public function testRead()
      {
        $retrievedProject = $this->projects('project1');
        $this->assertTrue($retrievedProject instanceof Project);
        $this->assertEquals('Test Project 1',$retrievedProject->name);
      }
        public function testUpdate()
      {
        $project = $this->projects('project2');
        $updatedProjectName = 'Updated Test Project 2';
        $project->name = $updatedProjectName;
        $this->assertTrue($project->save(false));
        //read back the record again to ensure the update worked
        $updatedProject=Project::model()->findByPk($project->id);
        $this->assertTrue($updatedProject instanceof Project);
        $this->assertEquals($updatedProjectName,$updatedProject->name);
      }
        public function testDelete()
      {
        $project = $this->projects('project2');
        $savedProjectId = $project->id;
        $this->assertTrue($project->delete());
        $deletedProject=Project::model()->findByPk($savedProjectId);
        $this->assertEquals(NULL,$deletedProject);
    }
}

誰でも助けてくれますか?

4

3 に答える 3

0

PHPStorm の使用中に同じ問題が発生しました。ディレクトリ 'unit' に立ってテスト (ctrl+shift+F10) を実行すると機能しますが、テスト ファイル自体に立つと機能しません。

于 2012-12-30T08:12:27.100 に答える
0

フレームワーク ディレクトリに test という名前のディレクトリがあり、その中に CDbTestCase.php があるはずです。これを確認できますか?欠落している場合は、問題が見つかりました。そうでない場合、コードはフレームワーク ディレクトリに到達できません。

于 2012-10-06T14:37:18.413 に答える