Я действительно теряю то, что происходит - все началось с ошибки PHPUnit Error: No code coverage driver is available
при попытке запустить отчет по охвату тестирования и закончилась тем, что я отлаживаю реплицируемый набор, описанный ниже. Но чтобы создать сцену - я использую Laravel 5.5, Xdebug 2.5.5, PHPUnit 6.5.5. Мой тестовый код, который иллюстрирует проблему:
<?php
use Tests\TestCase;
class A extends TestCase
{
public function testA()
{
echo( get_cfg_var('cfg_file_path')); exit;
}
}
выходы C:\Users\xxx\AppData\Local\Temp\7598.tmp
сравните его с этим кодом, который выводит правильный путь php.ini:
<?php
use PHPUnit\Framework\TestCase;
class A extends TestCase
{
public function testA()
{
echo( get_cfg_var('cfg_file_path')); exit;
}
}
выходы: C:\server\php\php.ini
Как это может быть? Как файл загруженного файла php.ini зависит от исполняемого кода? Еще лучше - как может быть загружен мой правильный файл php.ini(с поддержкой xdebug) вместо этого самозванца?
В обоих случаях тесты запускаются с использованием phpunit tests\unit\a
Структура папок:
Laravel Project
└───tests
└───Unit
└───A.php