Прошу прощения, но я работаю над этим некоторое время, но безрезультатно, поэтому могу быть немного многословен.
Фон
У меня есть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()
, и все следы, которые я видел, были связаны с платформой тестирования, но не было никаких упоминаний о файлах приложений, которые, как я знаю, активируются с помощью приемочных тестов.
На данный момент я отчаянно нуждаюсь в помощи, так как исчерпал все свои знания.