Проблема
Щоб покращити свою якість коду, я вирішив спробувати навчитися тестувати свій код за допомогою Unit Testing замість моїх посередніх у кращому варіанті тестування рішень.
Я вирішив встановити PHPUnit за допомогою композитора для особистої бібліотеки, що дозволяє мені досягти загальних функцій бази даних. Спочатку у мене не було файлу конфігурації для PHPUnit, і коли я запускав такі команди:
$ phpunit tests/GeneralStringFunctions/GeneralStringFunctionsTest
Зверніть увагу, що це команда терміналу, тому я не включив .php
розширення. Тест GeneralStringFunctionsTest, згаданий вище, насправді є GeneralStringFunctionsTest.php
файлом.
Результат - це те, що я очікував:
Час: 31 мс, пам'ять: 2,75 Мб
ОК (1 тест, 1 твердження)
Потім я спробував використати файл конфігурації для автоматичного завантаження тестового набору, замість того, щоб кожен раз вводити файл вручну. Я створив файл, який називається phpunit.xml
у моєму кореневому каталозі, і ввів у файл наступне: http://pastebin.com/0j0L4WBD :
<?xml version = "1.0" encoding="UTF-8" ?>
<phpunit>
<testsuites>
<testsuite name="Tests">
<directory>tests</directory>
</testsuite>
</testsuites>
</phpunit>
Тепер, коли я запускаю команду:
phpunit
Я отримую такий результат:
PHPUnit 4.5.0 Себастьяна Бергмана та співавторів.
Конфігурація, прочитана з /Users/muyiwa/Projects/DatabaseHelper/phpunit.xml
Час: 16 мс, пам'ять: 1,50 Мб
Тестів не виконується!
Якщо це корисно, моя структура каталогів така:
src - каталог верхнього рівня (з усім моїм вихідним кодом)
тести - каталог верхнього рівня (з усіма моїми тестами, структурованими так само, як і моя папка src )
постачальник - сторонні файли Composer
У мене також є файл композитора json і lock, а також файл phpunit xml на верхньому рівні як файли.
Те, що я пробував
- Зміна каталогу в
phpunit.xml
доtests/GeneralStringFunctions
- Зміна каталогу в
phpunit.xml
до./tests
- Переміщення
phpunit.xml
файлу вtests
каталог, а потім змінення каталогу./
замістьtests
. - Додавання атрибута суфікса до тегу каталогу,
phpunit.xml
щоб вказати "Тести" як явний суфікс.
tests/GeneralStringFunctions/GeneralStringFunctionsTest
папка або ім'я файлу?