Пустое покрытие кода с Codeception + Xdebug в Docker - PullRequest
0 голосов
/ 14 февраля 2019

Прошу прощения, но я работаю над этим некоторое время, но безрезультатно, поэтому могу быть немного многословен.

Фон
У меня естьPHP 7.2.14 Приложение, запускающее Apache внутри контейнера Docker.У меня включен XDebug v2.6.1, и я вижу, что он загружен правильно с использованием php --version и php -m

Это приложение Yii 1.1.13, и я следовал многим инструкциям по использованию Codeception сc3.php.Я также использую Selenium Container с ChromeDriver 2.46.628388 в той же докерной сети, что и мой контейнер приложений.

Я смог нормально запустить приемочные тесты для своего приложения, однако, когда япытаясь создать покрытие кода, я получаю следующие результаты:

Code Coverage Report:
  2019-02-13 22:09:20

 Summary:
  Classes:  0.00% (0/1)
  Methods:  0.00% (0/11)
  Lines:    0.00% (0/153)

У меня целенаправленно низкий счетчик тестов, и я покрываю только один файл, чтобы быстро выполнять тесты.Мой файл codeception.yml:

actor: Tester

paths:
  tests: protected/tests
  log: protected/tests/_log
  data: protected/tests/_data
  helpers: protected/tests/_support

settings:
  bootstrap: _bootstrap.php
  colors: true
  memory_limit: 1024M
  log: true
  debug: true

modules:
  enabled: [Yii1]
  config:
    Yii1:
      appPath: index-test.php
      url: http://container-name:80/index-test.php

coverage:
  enabled: true
  remote: true
  c3_url: http://container-name:80/index-test.php
  remote_config: codeception.yml
  include:
    - protected/controllers/SiteController.php

Мой файл accept.suite.yml:

class_name: AcceptanceTester

coverage:
  enabled: true
  remote: true

modules:
    enabled:
        - WebDriver:
              browser: chrome
              url: http://container-name:80
              host: selenium-container-name
              port: 4444
        - Yii1:
              appPath: '/var/www/html/index-test.php'
              url: 'http://container-name:80/index-test'
              part: init
        - \Helper\Acceptance

Мои параметры xdebug.ini:

zend_extension = /usr/local/lib/php/extensions/no-debug-non-zts-20170718/xdebug.so

xdebug.var_display_max_depth = 5
xdebug.var_display_max_data = 5
xdebug.var_display_max_children = 5
xdebug.max_nesting_level = 250
xdebug.cli_color = 1

xdebug.remote_enable = 1
xdebug.remote_connect_back = 1
xdebug.remote_handler = dbgp
xdebug.remote_host = localhost
xdebug.remote_log = /tmp/xdebug.log
xdebug.remote_mode = req
xdebug.remote_port = 9000
xdebug.remote_autostart = 1
xdebug.coverage_enable = 1

Iвключить c3.php в мой файл index-test.php.Мои усилия по отладке были разнообразны до сих пор.Я попытался покопаться в c3.php, чтобы понять, почему он пуст, но я теряю след, когда сбрасываю объект PHP_CodeCoverage, и он тоже пуст.

Похоже, xdebug не профилируетприложение правильно!После выполнения моих тестов я сбросил результаты xdebug_get_code_coverage(), и все следы, которые я видел, были связаны с платформой тестирования, но не было никаких упоминаний о файлах приложений, которые, как я знаю, активируются с помощью приемочных тестов.

На данный момент я отчаянно нуждаюсь в помощи, так как исчерпал все свои знания.

...