Мне удалось решить все проблемы, которые у меня были.Я использовал некоторые сведения, приведенные в ссылках, которые я указал выше.
Прежде всего
Включить ошибки
PhpUnit xml используетДиректива includePath, которая в моем случае выглядела так:
<php>
<includePath>/var/www/html/phpUnit</includePath>
</php>
Обычно на этом этапе проблема заключается в… существовании includePath в xml-файле.Этот атрибут изменяет путь включения.
Итак, допустим, что у вас есть такая структура проекта:
- dir: Classes
–- dir: A
–-- file: A.php class: A (extends B)
–- dir: B
–-- file: B.pphp class: B
-file: index.php
Итак, из вида файла A.php вам нужно будет включить B.phpвот так: ../B/B.php
Так как рабочий каталог
/var/www/html/phpUnit/Classes/
Но теперь, так как вы установили путь включения:
var/www/html/phpUnit
Файл A, пытается загрузить файл B с точки зрения папки phpUnit, и он вроде ищет файл в:
var/www/html
Отсутствие этой директивы не решает проблему, так как phpUnit, похоже, использует какую-то другуюпуть по умолчанию.
Я решил эту проблему, изменив способ включения файлов в проект:
Просто вместо этого:
include_once '../Interfaces/BasicCalculationsInterface.php';
Я начал это делатькак это:
include_once __DIR__.'/../Interfaces/BasicCalculationsInterface.php';
Таким образом:
- Тесты отдельных файлов работают нормально
- Сам проект работает нормально
- phpStorm обнаруживает методы, классыи т.д. во включенном файле
- Групповые тесты тоже хорошо работают
Написание файла indразрешение ex.html отклонено
Я также наткнулся на эту проблему.На самом деле это какая-то проблема phpStorm, которую я не знаю, как решить навсегда, но я справился с ней для xml-файла, из которого я могу запустить все свои тесты.
В основном phpStorm добавил некоторые значения по умолчаниюконфигурации для выполненных тестов.
В меню выберите
Запуск / редактирование конфигураций
Взгляните на поле Опции Test Runner .
В моем случае phpStorm добавил
--coverage-html /
Все бы хорошо, но я использую Ubuntu на ноутбуке в качестве удаленного хоста, и phpStorm пытается таким образом создать файлы в / каталог, для которого нет разрешения на запись.Изменение этой записи на какую-либо папку для записи или удаление этой строки решило проблему.
И все, вот как выглядит мой xml-файл на данный момент (на тот случай, если кто-то захочет что-то посмотреть)
<?xml version="1.0" encoding="UTF-8"?>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="phpunit.xsd"
verbose="true">
<filter>
<whitelist addUncoveredFilesFromWhitelist="false">
<directory suffix=".php">/var/www/html/phpUnit</directory>
</whitelist>
</filter>
<logging>
<log type="coverage-clover" target="/var/www/html/phpunit/coverage.xml" lowUpperBound="35" highLowerBound="70"/>
<log type="coverage-html" target="/var/www/html/phpUnit/phpStormCoverageTest" lowUpperBound="35"
highLowerBound="70"/>
</logging>
<testsuites>
<testsuite name="allTests">
<directory suffix="Test.php">/var/www/html/phpUnit/Tests</directory>
</testsuite>
</testsuites>
</phpunit>
Предварительный просмотр рабочего покрытия html / phpStorm