PhpUnit 3.6.10 + NetBeans 7.1: исключение при хорошем тесте - PullRequest
1 голос
/ 25 февраля 2012

В cmdline все в порядке:

d:\xampp\htdocs\PhpProject1\Tests>phpunit TestStub.php
PHPUnit 3.6.10 by Sebastian Bergmann.

.

Time: 0 seconds, Memory: 2.75Mb

OK (1 test, 1 assertion)

Вызывается в NetBeans7.1:

Fatal error: Uncaught exception 'PHPUnit_Framework_Exception' with message 'Could not find class "" in "D:\Program Files (x86)\NetBeans 7.1\php\phpunit\NetBeansSuite.php".' in D:\xampp\php\PEAR\PHPUnit\Util\Skeleton\Test.php:123
Stack trace:
0 D:\xampp\php\PEAR\PHPUnit\TextUI\Command.php(157): PHPUnit_Util_Skeleton_Test->__construct('', 'D:\Program File...')
1 D:\xampp\php\PEAR\PHPUnit\TextUI\Command.php(130): PHPUnit_TextUI_Command->run(Array, true)
2 D:\xampp\php\phpunit(46): PHPUnit_TextUI_Command::main()
3 {main}
thrown in D:\xampp\php\PEAR\PHPUnit\Util\Skeleton\Test.php on line 123

Я думаю, что это проблема NetBeans. Если я бегу:

d:\Program Files (x86)\NetBeans 7.1\php\phpunit>phpunit NetBeansSuite.php run=d:\xampp\htdocs\PhpProject1\Tests\TestStub.php
PHPUnit 3.6.10 by Sebastian Bergmann.

.

Time: 0 seconds, Memory: 2.75Mb

OK (1 test, 1 assertion)

Все нормально. Но если я дам тестовый каталог, он потерпит неудачу.

d:\Program Files (x86)\NetBeans 7.1\php\phpunit>phpunit NetBeansSuite.php run=d:\xampp\htdocs\PhpProject1\Tests\

Fatal error: Uncaught exception 'PHPUnit_Framework_Exception' with message 'Could not find class "" in "D:\Program Files (x86)\NetBeans 7.1\php\phpunit\NetBea
nsSuite.php".' in D:\xampp\php\PEAR\PHPUnit\Util\Skeleton\Test.php:123
Stack trace:
0 D:\xampp\php\PEAR\PHPUnit\TextUI\Command.php(157): PHPUnit_Util_Skeleton_Test->__construct('', 'D:\Program File...')
1 D:\xampp\php\PEAR\PHPUnit\TextUI\Command.php(130): PHPUnit_TextUI_Command->run(Array, true)
2 D:\xampp\php\phpunit(46): PHPUnit_TextUI_Command::main()
3 {main}
thrown in D:\xampp\php\PEAR\PHPUnit\Util\Skeleton\Test.php on line 123

Есть временное решение?

1 Ответ

3 голосов
/ 27 февраля 2012

При запуске PHPUnit для одного файла он всегда будет открывать файл и искать в нем контрольный пример.

При запуске его в каталоге (что делает netbeans) он будет просматривать только файлы, заканчивающиеся на *Test.php (если в phpunit.xml не указано иное).

Если он не может найти никаких тестов, он попытается просмотреть папку $TestSuiteName и {$TestSuiteName}.php файлы, поэтому появится сообщение об ошибке:

Неустранимая ошибка: необработанное исключение "PHPUnit_Framework_Exception" с сообщением "Не удалось найти класс" "

так как он ищет "неназванный" набор тестов в пакете phpunit netbeans. Сообщение об ошибке действительно не помогает вам там:)

Общим предложением было бы создать phpunit.xml и указать на него Netbeans.

На более личном замечании: благодаря поддержке phpunit в основных IDE Netbeans делает много правильных вещей и хорошо работает для многих людей, поэтому не позволяйте этому удару отговорить вас использовать его из IDE, если это что ты хочешь.

...