Конфигурирование phpStorm и XML для покрытия phpUnit 7 (удаленного) - PullRequest
0 голосов
/ 25 октября 2018

Я играю неделю с phpUnit.

Я медленно продвигаюсь с документацией по адресу:

На данный момент я в коде покрытия.Мне удалось создать небольшой тест - cover-html (через консоль).Я хочу, чтобы все работало через phpStorm.

Я борюсь с путями включения.Я вижу ошибки в консоли, но они совсем не помогают.

Вот так выглядит вывод моей консоли:

enter image description here

Это единственное местоЯ использую этот файл в

enter image description here

Так выглядит структура папок для протестированного и отображаемого (в консоли) файла

|- dir:Boostrap
|- dir:Coverage
|- dir:Database
|- dir:Interfaces
|- dir:Methods
|---- file: BasicCalculations.php (line 3 inclusion)
|- dir:Tests
|---- file:DataDisplayingTest.php (file that I'm testing)
|---- dir:Data Providers
|-------- file:BasicCalculationDataProvider.php (line 4 inclusion)

Что я пробовал / Что я сделал до сих пор

Вот так выглядит мой phpunit.xml:

<?xml version="1.0" encoding="UTF-8"?>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:noNamespaceSchemaLocation="phpunit.xsd"
         cacheResult="true"
         verbose="true">

    <filter>
        <whitelist processUncoveredFilesFromWhitelist="true">
            <directory>/var/www/html/phpUnit</directory>
        </whitelist>
    </filter>

    <php>
         <includePath>/var/www/html/phpUnit</includePath>
    </php>
</phpunit>

I 'я поиграл с каталогом / includeedPath, попробовал вариант как:

 - /var/www/html/phpUnit
 - /var/www/html/phpUnit/
 - .
 - ./
 - <file>pointed/tested/file/here/</file>

Я работаю с:

  • phpStorm
  • phpUnit 7.x Удаленно
  • php 7.x Удаленно
  • xdebug Удаленно

Чтобы быть более понятным:

  • что я делаю не так?
  • как я могу решить проблемы с включениями?
  • что вызывает все эти проблемы с путями включения?

1 Ответ

0 голосов
/ 27 октября 2018

Мне удалось решить все проблемы, которые у меня были.Я использовал некоторые сведения, приведенные в ссылках, которые я указал выше.

Прежде всего

Включить ошибки

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 enter image description here

enter image description here

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