Я следую за «Agile-разработкой веб-приложений с помощью yii 1.1 и php5», и я нахожусь в разделе тестирования с разделами. Я выполнил их код, но я не могу получить доступ к устройству …
Я запускаю свой модульный тест в главе 6 после настройки прибора с помощью PHPunit, и он возвращает мне это
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); } }
Может ли кто-нибудь помочь?
проверьте, загружен ли файл начальной загрузки в pŕotected / tests, на правильные пути и проверьте, правильно ли файл WebTastCase.php в той же папке справа от TEST_BASE_URL, например:
define('TEST_BASE_URL','http://localhost/my_app/index-test.php/');
и попробуйте запустить phpunit из папки protected / tests
В вашем каталоге фреймворка должен присутствовать dir с именем test и внутри него должен быть CDbTestCase.php. вы можете проверить это, пожалуйста? если он отсутствует, вы обнаружили проблему, иначе ваш код не сможет попасть в каталог dir.
Я столкнулся с такой же проблемой при использовании PHPStorm. Он работает, когда я запускаю тесты (ctrl + shift + F10), находясь на странице «unit», но не будет работать, если я буду стоять на самом тестовом файле.