젠드 프레임 워크의 단위 테스트에 대해 배우려고합니다. 나는 PHPunit을 설치했다.PHPunit 용 젠드 프레임 워크 구성
는 또한 잘 작동하고 성공적으로 난 그냥 사용하고 phpunit을 이해 시작할 등 DB
에 쓰는 간단한 젠드/교리 2 골격을 만들었습니다,하지만 이상한 오류를주고있다. 나는 절대적으로 아무것도하지 않는 빈 IndexController있다. 나는 단지 그것이 존재한다고 주장하고 싶다. PHPunit은 부트 스트랩과 관련된 많은 오류 목록을 던지지만 실제로 부트 스트랩은 완벽하게 작동합니다.
phpunit이 내 포함 경로를 따르지 않는 것처럼 보입니다.
ps. 이 게시물을 이미 읽은 적이 있다면 골격 프로젝트를 단순화하고이를 반영하기 위해 아래의 코드와 오류를 편집했습니다. 잘하면 디버깅하기가 더 쉬워지기를 바랍니다.
나는 몇 가지 코드가 내 도움이 설명 생각 : (그것의 길이 죄송합니다)
<?php
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
/**
*
*
*
*
*/
protected function _initConfig()
{
$config = new Zend_Config($this->getOptions());
Zend_Registry::set('config', $config);
}
/**
*
*
*
*
*/
protected function _initDoctrine() {
require_once('Doctrine/Common/ClassLoader.php');
$autoloader = Zend_Loader_Autoloader::getInstance();
$classLoader = new \Doctrine\Common\ClassLoader('Entities',
realpath(Zend_Registry::get('config')->resources->entityManager->connection->entities), 'loadClass');
$autoloader->pushAutoloader(array($classLoader, 'loadClass'), 'Entities');
$classLoader = new \Doctrine\Common\ClassLoader('Repositories',
realpath(Zend_Registry::get('config')->resources->entityManager->connection->entities), 'loadClass');
$autoloader->pushAutoloader(array($classLoader, 'loadClass'), 'Repositories');
}
}
그리고 이제 오류 :
[email protected]:/var/www/z2d2/tests$ phpunit
PHPUnit 3.5.15 by Sebastian Bergmann.
PHP Fatal error: Bootstrap::_initDoctrine(): Failed opening required 'Doctrine/Common/ClassLoader.php' (include_path='/var/www/z2d2/application/../views:.:/usr/share/php:/usr/share/php/:/usr/local/share/php/library') in /var/www/z2d2/application/Bootstrap.php on line 28
PHP Stack trace:
PHP 1. {main}() /usr/bin/phpunit:0
PHP 2. PHPUnit_TextUI_Command::main() /usr/bin/phpunit:49
PHP 3. PHPUnit_TextUI_Command->run() /usr/share/php/PHPUnit/TextUI/Command.php:129
PHP 4. PHPUnit_TextUI_TestRunner->doRun() /usr/share/php/PHPUnit/TextUI/Command.php:188
PHP 5. PHPUnit_Framework_TestSuite->run() /usr/share/php/PHPUnit/TextUI/TestRunner.php:305
PHP 6. PHPUnit_Framework_TestSuite->run() /usr/share/php/PHPUnit/Framework/TestSuite.php:693
PHP 7. PHPUnit_Framework_TestSuite->runTest() /usr/share/php/PHPUnit/Framework/TestSuite.php:733
PHP 8. PHPUnit_Framework_TestCase->run() /usr/share/php/PHPUnit/Framework/TestSuite.php:757
PHP 9. PHPUnit_Framework_TestResult->run() /usr/share/php/PHPUnit/Framework/TestCase.php:576
PHP 10. PHPUnit_Framework_TestCase->runBare() /usr/share/php/PHPUnit/Framework/TestResult.php:666
PHP 11. ModelTestCase->setUp() /usr/share/php/PHPUnit/Framework/TestCase.php:626
PHP 12. Zend_Application->bootstrap() /var/www/z2d2/tests/application/models/ModelTestCase.php:16
PHP 13. Zend_Application_Bootstrap_BootstrapAbstract->bootstrap() /usr/local/share/php/library/Zend/Application.php:355
PHP 14. Zend_Application_Bootstrap_BootstrapAbstract->_bootstrap() /usr/local/share/php/library/Zend/Application/Bootstrap/BootstrapAbstract.php:586
PHP 15. Zend_Application_Bootstrap_BootstrapAbstract->_executeResource() /usr/local/share/php/library/Zend/Application/Bootstrap/BootstrapAbstract.php:622
PHP 16. Bootstrap->_initDoctrine() /usr/local/share/php/library/Zend/Application/Bootstrap/BootstrapAbstract.php:669
Fatal error: Bootstrap::_initDoctrine(): Failed opening required 'Doctrine/Common/ClassLoader.php' (include_path='/var/www/z2d2/application/../views:.:/usr/share/php:/usr/share/php/:/usr/local/share/php/library') in /var/www/z2d2/application/Bootstrap.php on line 28
Call Stack:
0.0002 326940 1. {main}() /usr/bin/phpunit:0
0.0424 666604 2. PHPUnit_TextUI_Command::main() /usr/bin/phpunit:49
0.0424 667084 3. PHPUnit_TextUI_Command->run() /usr/share/php/PHPUnit/TextUI/Command.php:129
0.0924 4311848 4. PHPUnit_TextUI_TestRunner->doRun() /usr/share/php/PHPUnit/TextUI/Command.php:188
0.1036 4751832 5. PHPUnit_Framework_TestSuite->run() /usr/share/php/PHPUnit/TextUI/TestRunner.php:305
0.1037 4752248 6. PHPUnit_Framework_TestSuite->run() /usr/share/php/PHPUnit/Framework/TestSuite.php:693
0.1038 4752576 7. PHPUnit_Framework_TestSuite->runTest() /usr/share/php/PHPUnit/Framework/TestSuite.php:733
0.1038 4752576 8. PHPUnit_Framework_TestCase->run() /usr/share/php/PHPUnit/Framework/TestSuite.php:757
0.1040 4752576 9. PHPUnit_Framework_TestResult->run() /usr/share/php/PHPUnit/Framework/TestCase.php:576
0.2036 4787392 10. PHPUnit_Framework_TestCase->runBare() /usr/share/php/PHPUnit/Framework/TestResult.php:666
0.2082 4891936 11. ModelTestCase->setUp() /usr/share/php/PHPUnit/Framework/TestCase.php:626
0.2567 5678688 12. Zend_Application->bootstrap() /var/www/z2d2/tests/application/models/ModelTestCase.php:16
0.2568 5678732 13. Zend_Application_Bootstrap_BootstrapAbstract->bootstrap() /usr/local/share/php/library/Zend/Application.php:355
0.2569 5678732 14. Zend_Application_Bootstrap_BootstrapAbstract->_bootstrap() /usr/local/share/php/library/Zend/Application/Bootstrap/BootstrapAbstract.php:586
0.2609 5699280 15. Zend_Application_Bootstrap_BootstrapAbstract->_executeResource() /usr/local/share/php/library/Zend/Application/Bootstrap/BootstrapAbstract.php:622
0.2610 5699472 16. Bootstrap->_initDoctrine() /usr/local/share/php/library/Zend/Application/Bootstrap/BootstrapAbstract.php:669
이 내 간단한 부트 스트랩
[email protected]:/var/www/z2d2/tests$ phpunit --version
PHPUnit 3.6.3 by Sebastian Bergmann.
<?php
require_once 'Zend/Application.php';
require_once 'Zend/Test/PHPUnit/ControllerTestCase.php';
abstract class ControllerTestCase extends Zend_Test_PHPUnit_ControllerTestCase
{
public function setUp()
{
$this->bootstrap = new Zend_Application(
'development',
APPLICATION_PATH . '/configs/application.ini'
);
parent::setUp();
}
public function tearDown()
{
parent::tearDown();
}
}
<?php
class IndexControllerTest extends ControllerTestCase
{
public function testDoesHomePageExist()
{
$this->dispatch('/');
$this->assertController('index');
$this->assertAction('index');
}
}
입니다
누군가 내가 잘못 가고있는 것을 나에게 보여줄 수 있습니까? 나는 심지어 내 PHPunit이 올바르게 설정되지 않았다고 의심한다.
오토로더에 문제가있는 것 같지만 나는 그렇게 빨리 볼 수 없다. 또한 Zend Framework 1.x는 불행하게도 PHPUnit 3.6.x와 호환되지 않습니다. 그러나이 문제는 처음에는 발생하지 않지만 나중에 스크립트를 중단합니다. –
감사합니다. 설치에 문제가 있다고 생각합니다. 제거를 시도해야합니까? 내가 어떻게 제거해야하는지에 대한 제안 사항이 있습니까? 예. PEAR 또는 패키지 관리자가 있습니까? zend 1.x에서 어떤 버전을 설치 하시겠습니까? – dimbo
이 항목의 문제는 설치가 아니라고 생각하지만 문제를 해결 한 후에이 phpunit 버전 문제를 해결할 것입니다. 이전 버전을 설치하는 것은 어렵지 만 먼저 phpunit 3.6을 모든 종속 항목과 함께 삭제해야합니다. 다음과 같이 버전 번호를 지정하여 phpunit을 설치할 수 있습니다. pear install phpunit/PHPUnit-3.5.14. –