Как обернуть PHPUnit для управления отчетами командной строки? - PullRequest
1 голос
/ 15 октября 2010

Итак, у меня много тестов PHPUnit (на самом деле это тесты Selenium, выполняющиеся как тесты PHPUnit). Когда я запускаю их из командной строки, я получаю такие отчеты по завершении тестов:

..E..F..E.FF...

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

testLogin ....... passed
testFoobar ...... failed
    - Failed asserting that foo = true on line 123
testBazbat ...... passed

Как я могу получить контроль над тем, как PHPUnit отображает результаты?

Ответы [ 3 ]

5 голосов
/ 15 октября 2010

PHPUnit имеет несколько параметров командной строки для управления форматом вывода.Наиболее полезными для вас являются --testdox и --tap

Они работают следующим образом:

]> phpunit --tap FooTest.php 
TAP version 13
not ok 1 - Failure: FooTest::test_add
  ---
  message: fark
  severity: fail
  ...
ok 2 - FooTest::test_exists
ok 3 - FooTest::test_show_html
ok 4 - FooTest::test_show_array
ok 5 - FooTest::test_show_empty
ok 6 - FooTest::test_find
1..6


]> phpunit --testdox FooTest.php 
PHPUnit 3.5.0 by Sebastian Bergmann.

Foo
 [ ] test add
 [x] test exists
 [x] test show html
 [x] test show array
 [x] test show empty
 [x] test find

Как видите, --testdox не показывает причину сбоя, его причинуиспользоваться как своего рода генератор спецификаций.Но --tap подходит довольно близко.

И вы всегда можете написать своего собственного тестового слушателя - пользовательский класс, который реализует интерфейс PHPUnit_Framework_Testlistener (имеет такие методы, как startTest, endTest, addFailure, addError и т. Д.Пояснительно, соответствующий код будет вызываться для событий, которые происходят, когда запускается ваш набор тестов.

Такой код подключается к phpunit с помощью файла конфигурации xml.

Один хороший пример такого пользовательского слушателя можно посмотреть здесь: http://raphaelstolt.blogspot.com/2010/06/growling-phpunits-test-status.html

1 голос
/ 03 марта 2013

используйте

--printer path/to/MyTestListener

опция, указывающая на ваш пользовательский класс MyTestListener http://www.phpunit.de/manual/3.6/en/textui.html#textui.clioptions

или его можно установить в файле конфигурации phpunit.xml с помощью свойства printerClass

см. http://www.phpunit.de/manual/3.6/en/appendixes.configuration.html#appendixes.configuration

Вот инструкции, как сделать свой собственный класс принтера http://www.phpunit.de/manual/current/en/extending-phpunit.html#extending-phpunit.examples.SimpleTestListener.php

Если вы не хотите начинать с нуля, просто переименуйте и измените принтер по умолчанию https://github.com/sebastianbergmann/phpunit/blob/master/PHPUnit/TextUI/ResultPrinter.php

0 голосов
/ 30 апреля 2011

Если вам нужны красивые страницы отчетов HTML, попробуйте использовать задачу phing * phpunitreport.Для скриншотов см. запись в моем блоге .Очень полезно для больших тестовых наборов.

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