2013-03-04 3 views
2

PHPUnit дает мне сообщение об ошибке всякий раз, когда я пытаюсь включить файл. Например, follwing код дает мне ошибку:PHPUnit не позволяет включать файлы

<?php 

include_once "PHPUnit/Autoload.php"; 
require_once "controller/ProductController.php"; 

class SecurityTests extends PHPUnit_Framework_TestCase 
{ 
    public function testSmth() { 
     $this->assertTrue(1==1); 
    } 
} 

>

Но если удалить четвертую строку (require_once "controller/ProductController.php";), она работает нормально?.

Ошибки я получаю:

Warning: require_once(PHPUnit/Framework/Error.php): failed to open stream: No such file or directory in E:\wamp\bin\php\php5.4.3\pear\PHPUnit\Util\ErrorHandler.php on line 48 

EDIT: Мой include_path в php.ini файле:

include_path = ".;E:\wamp\bin\php\php5.4.3\pear\;E:\wamp\www\renting\" 

Что странно:

<?php 
echo get_include_path(); **// Will echo .;E:\wamp\bin\php\php5.4.3\pear\;E:\wamp\www\renting\** 
require_once 'PHPUnit/Autoload.php'; 
require_once 'controller/AccountController.php'; 
echo get_include_path(); **// Will echo E:/wamp/www/renting/** 

А также:

<?php 

require_once 'controller/AccountController.php'; 
echo get_include_path(); **// Will echo E:/wamp/www/renting/** 
require_once 'PHPUnit/Autoload.php'; 

echo get_include_path(); **// Will not even echo.** 

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

Любые идеи?

+0

Как выглядит ваша структура каталогов и откуда вы запускаете тест? –

+0

Я использую PhpStorm для запуска тестов, но если я запустил его из тестовой папки с командной строкой, то получаю те же результаты. – cgf

+0

Если я удаляю включенный файл, я не получаю никакой ошибки, тесты проходят нормально. – cgf

ответ

0

Ok, это заняло у меня дней, чтобы понять это. Надеюсь, никто никогда не поймет, что я пойду.

у меня в php.ini:

include_path = ".;E:\wamp\bin\php\php5.4.3\pear\;E:\wamp\www\renting\" 

Но поскольку я не использовать несколько PHP включают пути в моем ини файле, я использовал

set_include_path("E:/wamp/www/renting/"); 

в некоторых файлах , даже если это были не те, которые я пытался включить.

В любом случае, это может показаться глупым и запутанным, но , если вы обнаружите, что PHPUnit неправильно загружается по какой-либо причине, подумайте о возможности изменения кода включения пути.

1

Его проблема с проблемой.

Убедитесь, что установили PHUnit ниже packeges:

pear channel-discover pear.phpunit.de
pear channel-discover components.ez.no
pear install phpunit/PHP_CodeCoverage

попробовать Sudo, если у вас нет разрешения.

Некоторые ссылки, который помогает вам:

https://bugs.launchpad.net/ubuntu/+source/phpunit/+bug/701544

fatal error 'File/Iterator/Autoload.php' not found when running phpunit

phpunit require_once() error

+0

Ну, похоже, что мои файлы на самом деле отсутствуют, и мне нечего скачивать. Проблема в том, что он не может включать файлы, которые ему нужны, даже если они есть. Я не понимаю. – cgf

Смежные вопросы