2013-08-09 2 views
0

Привет, я просто скачал phpunit.phar в моем проекте laravel (который я уже частично разработал). Я начал делать простойphpunit дает ошибки даже без тестов (Laravel)

php phpunit.phar 

но он выводит такие вещи, как целое viewfiles с в конце:

{"error":{"type":"ErrorException","message":"Undefined variable: currency","file":"C:\\wamp\\www\\project.dev\\app\\views\\front\\settings.php","line":79}} 

Это даже не тест и код работает при тестировании в браузере. Я также использую файл конфигурации phpunit по умолчанию, поставляемый с laravel.

EDIT: код

<label class="radio"> 
<input type="radio" name="settings_currency" id="set_curr_<?=$currency->id?>" value="<?=$currency->id?>" checked> 
<span class="symbol"><?=$currency->symbol?></span> 
<?=$currency->name?> 
<span><?=$currency->abbr?></span> 
</label> 
+0

Так 'currency' определено? Каковы ваши настройки уровня ошибок при нормальной работе? Показать код –

+0

@MarkBaker это когда вы вошли в систему, и это единственный раз, когда используется код. PHPunit, однако, все равно анализирует его –

+1

Если это все код, то $ currency не определен. Покажите определение метода в вашем коде. Откуда ваш метод? Если это внешность метода, вы издеваетесь над этим тестом? –

ответ

0

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

При запуске PHPUnit сканирует текущий каталог и все подкаталоги для файлов PHP, включает их и проверяет, есть ли определенные классы тестов, которые могут быть запущены. Включение файлов просмотра будет выполнять их без контекста, т. Е. Вы получите полное эхо и уведомления из любых используемых, но в настоящее время неопределенных переменных.

В качестве стартера создайте «phpunit.xml» в том же каталоге, в котором вы запускаете PHPUnit. Read the documentation о том, как создать его содержимое. Прежде всего вам нужно указать, какой каталог сканировать для тестовых классов с помощью элемента <testsuites>.

+0

Если вы прочитали мой вопрос, вы бы увидели, что я использую phpunit.xml по умолчанию, поставляемый с Laravel, у него уже определены тесты. https://github.com/laravel/laravel/blob/master/phpunit.xml - это файл –

+0

Нет, нет абсолютно никакой ссылки, говорящей мне, что вы хотите выполнить набор тестов laravel. Все, что я вижу, это то, что вы вызываете PHPUnit «где-то», и я догадался, что он, должно быть, находился в каталоге верхнего уровня вашего проекта. Пожалуйста, добавьте больше информации на свой вопрос. – Sven

+0

Я выполнил php phpunit.phar в каталоге, где phpunit.xml есть, так что он должен работать. –

0

код работает при тестировании в браузере.

Ну, как вы можете себе представить, только наличие «кода, работающего в браузере» не означает, что код является безошибочным.

Посмотреть сообщение об ошибке снова вы получите:

Неопределенная переменная: валюта

Так что вы испытываете здесь можно объяснить коротко, как: PHPUnit является более строгим с вашим кодом, чем вы. Он будет отмечать предупреждения, которые вам не нравились в прошлом, как в этом примере Неопределенные переменные.

Так что теперь узнать о том, как определять переменные и почему использование неопределенных переменных конечно вашей проблема и тогда вы будете легко понять, а почему PHPUnit чеку на них.

Также Вы можете снизить ваши ожидания путем снижения стандартов качества PHPUnit применяется при выполнении тестов по его настройке: Appendix C. The XML Configuration File

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

Это вам нужно иметь дело с этим, если вы выполните phpunit.В противном случае просто отступите и не выполните его :)

Я также использую конфигурационный файл phpunit по умолчанию, поставляемый с laravel.

Да, вы есть. Это , почему запущены тесты. И именно поэтому вы попали в акт использования Неопределенные переменные.


Смотрите так же:

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