PHPunit - Ошибки - PullRequest
       5

PHPunit - Ошибки

5 голосов
/ 26 августа 2010

Когда происходит ошибка, которую не ожидает фреймворк PHPunit, тестирование останавливается, и PHP выдает ошибку, но PHPunit не записывает, что это ошибка. Как мне убедиться, что PHPunit записывает это как ошибку.

Ответы [ 3 ]

5 голосов
/ 27 августа 2010

Отказ от ответственности, я новичок в PHPUnit и пытаюсь выяснить все, что происходит, когда происходит ошибка.

Из Документов PHPUnit :

Если тестируемый код содержит синтаксические ошибки PHP, выполнение теста TextUI может завершиться без вывода информации об ошибках. Загрузчик стандартного набора тестов может дополнительно проверять исходный файл набора тестов на наличие ошибок синтаксиса PHP, но не исходные файлы, включенные в исходный файл набора тестов.

И опция:

--syntax-check           Try to check source files for syntax errors.
0 голосов
/ 02 ноября 2012

Вам нужно будет зафиксировать ошибку, используя обычный PHP Error capture, чтобы избежать сбоя в ОС, который происходит, когда интерпретатор PHP обнаруживает ошибку.

Автоматизированные тесты должны быть проверены и протестированы до того, как вы попадете в основной поток разработки.

Я получаю выходные данные из PHPUnit (phpunit ...> PHPUnit.log), которые затем анализирую в поисках состояния из PHPUnit (Успешно с пропущенным / неполным, OK, FAILURE и т. Д.), И если это не так нашел, тогда я знаю, PHPUnit не завершен, и произошла ошибка. Результаты ошибки также будут сброшены в терминал, так как мой PHP настроен на отображение ошибок.

В случае ошибки я просто отправляю этот файл журнала команде разработчиков или человеку, который последний раз изменял тестовый файл, для расследования. Логика для электронной почты может стать сложной, если сценарии пытаются определить основную причину / человека, которому будет отправлено письмо. Как правило, сценарий отправляет мне электронное письмо для расследования, и команда разработчиков получает уведомление по электронной почте на случай, если я уйду или не смогу провести расследование сразу.

0 голосов
/ 01 ноября 2012

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

Если вы действительно хотите избежать этого случая, вы можете добавить некоторые из следующих битов в скрипт.В этом сценарии предполагается, что сценарий находится в каталоге с вашими тестами (./) и что ваше кодовое дерево начинается с ../ (аналогично обычной настройке ZendFramework 1).Не беспокойтесь об использовании покрытия кода с этим сценарием, он будет корректен только для последнего запуска unittest:

#!/bin/bash
   for i in $(find ../ -name "*.php"); do
        msg=`php -l $i`
        if [ "$?" != "0" ]; then
            echo $msg;
        fi
    done

   for i in $(find ./ -name "*Test.php"); do
     echo "Running Test: $i";

     phpunit $i
    done

HTH.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...