PHPUnit не находит Framework.php - PullRequest
       28

PHPUnit не находит Framework.php

2 голосов
/ 09 февраля 2012

Уже 2 дня я пытаюсь заставить phpunit работать на моем OSX. Я запускаю php из установки MAMP.

Я установил его через PEAR со всеми зависимостями. Команда phpunit --version работает и отображает:

$ phpunit --version
PHPUnit 3.6.10 by Sebastian Bergmann.

Но когда я запускаю тест из командной строки, он показывает:

Warning: require_once(/Applications/MAMP/bin/php/php5.3.6/lib/php/PHPUnit/Framework): failed to open stream: No such file or directory in /Users/magalie/Sites/HelloWorld/HelloWorldTest.php on line 3

Call Stack:
    0.0028     632128   1. {main}() /Applications/MAMP/bin/php/php5.3.6/bin/phpunit:0
    0.0078    1161288   2. PHPUnit_TextUI_Command::main() /Applications/MAMP/bin/php/php5.3.6/bin/phpunit:46
    0.0078    1162016   3. PHPUnit_TextUI_Command->run() /Applications/MAMP/bin/php/php5.3.6/lib/php/PHPUnit/TextUI/Command.php:130
    0.1109    1793352   4. PHPUnit_Runner_BaseTestRunner->getTest() /Applications/MAMP/bin/php/php5.3.6/lib/php/PHPUnit/TextUI/Command.php:150
    0.1109    1793352   5. PHPUnit_Runner_BaseTestRunner->loadSuiteClass() /Applications/MAMP/bin/php/php5.3.6/lib/php/PHPUnit/Runner/BaseTestRunner.php:104
    0.1115    1837832   6. PHPUnit_Runner_StandardTestSuiteLoader->load() /Applications/MAMP/bin/php/php5.3.6/lib/php/PHPUnit/Runner/BaseTestRunner.php:168
    0.1126    1983864   7. PHPUnit_Util_Fileloader::checkAndLoad() /Applications/MAMP/bin/php/php5.3.6/lib/php/PHPUnit/Runner/StandardTestSuiteLoader.php:78
    0.1127    1983984   8. PHPUnit_Util_Fileloader::load() /Applications/MAMP/bin/php/php5.3.6/lib/php/PHPUnit/Util/Fileloader.php:79
    0.1128    1994704   9. include_once('/Users/magalie/Sites/HelloWorld/HelloWorldTest.php') /Applications/MAMP/bin/php/php5.3.6/lib/php/PHPUnit/Util/Fileloader.php:95


Fatal error: require_once(): Failed opening required 'PHPUnit/Framework' (include_path='.:/Applications/MAMP/bin/php/php5.3.6/lib/php:/Applications/MAMP/bin/php5.3/lib/php/PEAR:/usr/lib/php') in /Users/magalie/Sites/HelloWorld/HelloWorldTest.php on line 3

Call Stack:
    0.0028     632128   1. {main}() /Applications/MAMP/bin/php/php5.3.6/bin/phpunit:0
    0.0078    1161288   2. PHPUnit_TextUI_Command::main() /Applications/MAMP/bin/php/php5.3.6/bin/phpunit:46
    0.0078    1162016   3. PHPUnit_TextUI_Command->run() /Applications/MAMP/bin/php/php5.3.6/lib/php/PHPUnit/TextUI/Command.php:130
    0.1109    1793352   4. PHPUnit_Runner_BaseTestRunner->getTest() /Applications/MAMP/bin/php/php5.3.6/lib/php/PHPUnit/TextUI/Command.php:150
    0.1109    1793352   5. PHPUnit_Runner_BaseTestRunner->loadSuiteClass() /Applications/MAMP/bin/php/php5.3.6/lib/php/PHPUnit/Runner/BaseTestRunner.php:104
    0.1115    1837832   6. PHPUnit_Runner_StandardTestSuiteLoader->load() /Applications/MAMP/bin/php/php5.3.6/lib/php/PHPUnit/Runner/BaseTestRunner.php:168
    0.1126    1983864   7. PHPUnit_Util_Fileloader::checkAndLoad() /Applications/MAMP/bin/php/php5.3.6/lib/php/PHPUnit/Runner/StandardTestSuiteLoader.php:78
    0.1127    1983984   8. PHPUnit_Util_Fileloader::load() /Applications/MAMP/bin/php/php5.3.6/lib/php/PHPUnit/Util/Fileloader.php:79
    0.1128    1994704   9. include_once('/Users/magalie/Sites/HelloWorld/HelloWorldTest.php') /Applications/MAMP/bin/php/php5.3.6/lib/php/PHPUnit/Util/Fileloader.php:95

Вот конфигурация от груши

Configuration (channel pear.php.net):
=====================================
Auto-discover new Channels     auto_discover    1
Default Channel                default_channel  pear.php.net
HTTP Proxy Server Address      http_proxy       <not set>
PEAR server [DEPRECATED]       master_server    pear.php.net
Default Channel Mirror         preferred_mirror pear.php.net
Remote Configuration File      remote_config    <not set>
PEAR executables directory     bin_dir          /Applications/MAMP/bin/php/php5.3.6/bin
PEAR documentation directory   doc_dir          /Applications/MAMP/bin/php/php5.3.6/lib/php/doc
PHP extension directory        ext_dir          /Applications/MAMP/bin/php/php5.3.6/lib/php/extensions
PEAR directory                 php_dir          /Applications/MAMP/bin/php/php5.3.6/lib/php/
PEAR Installer cache directory cache_dir        /var/folders/qH/qHdMKNY5GsywPNMBPX-T7U+++TI/-Tmp-//pear/cache
PEAR configuration file        cfg_dir          /Applications/MAMP/bin/php/php5.3.6/lib/php/cfg
directory
PEAR data directory            data_dir         /Applications/MAMP/bin/php/php5.3.6/lib/php/data
PEAR Installer download        download_dir     /var/folders/qH/qHdMKNY5GsywPNMBPX-T7U+++TI/-Tmp-//pear/download
directory
PHP CLI/CGI binary             php_bin          /Applications/MAMP/bin/php/php5.3.6/bin/php
php.ini location               php_ini          /Applications/MAMP/bin/php/php5.3.6/conf/php.ini
--program-prefix passed to     php_prefix       <not set>
PHP's ./configure
--program-suffix passed to     php_suffix       <not set>
PHP's ./configure
PEAR Installer temp directory  temp_dir         /var/folders/qH/qHdMKNY5GsywPNMBPX-T7U+++TI/-Tmp-//pear/temp
PEAR test directory            test_dir         /Applications/MAMP/bin/php/php5.3.6/lib/php/tests
PEAR www files directory       www_dir          /Applications/MAMP/bin/php/php5.3.6/lib/php/www
Cache TimeToLive               cache_ttl        3600
Preferred Package State        preferred_state  stable
Unix file mask                 umask            22
Debug Log Level                verbose          1
PEAR password (for             password         <not set>
maintainers)
Signature Handling Program     sig_bin          /usr/local/bin/gpg
Signature Key Directory        sig_keydir       /Applications/MAMP/bin/php/php5.3.6/pearkeys
Signature Key Id               sig_keyid        <not set>
Package Signature Type         sig_type         gpg
PEAR username (for             username         <not set>
maintainers)
User Configuration File        Filename         /Users/magalie/.pearrc
System Configuration File      Filename         /Applications/MAMP/bin/php/php5.3.6/conf/pear.conf

и phpunit запускается из / usr / lib / php, который является частью $ PATH

И это содержимое моего файла HElloWorldTest.php, я уже пробовал с расширением php для файла Framework или без него, но безуспешно.

<?php
require_once 'HelloWorld.php';
require_once 'PHPUnit/Framework';
///Applications/MAMP/bin/php/php5.3.6/lib/php/

class HelloWorldTest extends PHPUnit_Framework_TestCase
{
    public function test__construct()
    {
        $hw = new HelloWorld();
        $this->assertType('HelloWorld, $hw');
    }

    public function testSayHello()
    {
        $hw = new HelloWorld();
        $string = $hw->sayHello();
        $this->asserEquals('Hello World!', $string);
    }
}

Я уже пытался удалить и переустановить phpunit, но безуспешно. И, глядя в каталог PHPUnit, нет файла Framework.php.

ТАК, что я делаю не так? Есть ли у кого такая же проблема? Как ты это решил? Это сводит меня с ума, и у меня создается впечатление, что я бегаю кругами ...

Спасибо за вашу помощь.

Ответы [ 2 ]

6 голосов
/ 09 февраля 2012

Вам не нужно загружать PHPUnit в вашем тесте.Исполняемый файл phpunit заботится о настройке собственного автозагрузчика.Удалить эту строку:

require_once 'PHPUnit/Framework';
0 голосов
/ 13 июня 2012

Вам не нужно загружать PHPUnit в тесте. Исполняемый файл phpunit заботится о настройке свой автозагрузчик. Удалить эту строку:

require_once 'PHPUnit / Framework';

Это сработало для меня.

В качестве альтернативы, если у вас есть много существующих тестов, возможно, даже написанных не вами, вы можете создать пустой файл с именем Framework.php и поместить его в каталог PHPUnit.

...