У меня есть несколько файлов php, каждый из которых объявляет одно и то же имя класса.
Я хочу протестировать их все в одном пакете phpunit, но я получаю «Неустранимая ошибка: вы не можете переопределить класс» 🙁
В любом случае, чтобы сделать пакетное тестирование?
Или я должен проверить файл на файл?
Благодарю.
Я не уверен, что понимаю вашу проблему. Тем не менее, вот что я делаю для пакетного тестирования (надеюсь, это поможет вам).
Для пакетного модульного тестирования .bat-скрипт со всеми моими классами модульного тестирования, перечисленными ниже (run_unit_test.bat):
@ECHO OFF
CLS
ECHO.
ECHO FILE : AUTOMATIC_BACKUP_MANAGER_TEST.PHP
ECHO.
CALL PHPUNIT %~DP0/TEST/AUTOMATIC_BACKUP_MANAGER_TEST.PHP
ECHO.
ECHO.
Затем я использую команду Dos (в консоли Xampp, не работает для меня в обычной консоли DOS), как показано ниже, чтобы отправить результат в текстовый файл (я использую PHP для чтения и отображения текстового файла).
C:\xampp\htdocs\PC_administration_interface\Controler/temp_unit_test.bat > C:\xampp\htdocs\PC_administration_interface\Controler/test_result.txt
Для автоматического тестирования я использую планировщик задач для вызова этого скрипта:
@echo off
call C:\xampp\htdocs\PC_administration_interface\Controler\launch_xampp.bat
call C:\xampp\xampp_shell.bat
cls
call C:\xampp\htdocs\PC_administration_interface\Controler\run_unit_test.bat > "C:\xampp\htdocs\PC_administration_interface\Controler\test_result.txt"
Вот скрипт Launch xampp:
@echo off
tasklist | find /i "xampp-control.exe" && goto :eof
start /b "xampp-control.exe" "C:\xampp\xampp-control.exe"
Сценарий xampp_shell запускает командную строку со всеми настройками xampp (это будет по умолчанию, если вы используете Xampp, который есть).
В планировщике задач я выполняю две операции. Это два запуска скрипта (запустить программу в текстовом поле программы / скрипта):
C:\xampp\htdocs\PC_administration_interface\Controler\launch_automatic_test.bat
И это, чтобы открыть новую вкладку в Chrome, чтобы отобразить результат:
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"
Что-то вроде этого в текстовом поле добавить аргумент:
http://localhost/PC_administration_interface/view/unit_test.php?DISPLAY_RESULT=TRUE
Помимо этого решения, вы, вероятно, должны использовать команду require_once, чтобы быть уверенным, что объявление действительно объявлено только один раз.
Также, вероятно, рекомендуется объявлять по одному классу модульного тестирования для каждого вашего класса (и включать только один класс на файл, за исключением константных классов, используемых для эмуляции enum).
Как я уже сказал, я не уверен, что понимаю вашу проблему. Возможно, вам придется предоставить нам пример кода, если мое решение не работает.
Смиреннее всего,
Джонатан Родитель-Левеск из Монреаля
Других решений пока нет …