Во-первых, позвольте мне сказать, что я прошел через Достигнув 100% покрытия кода с помощью PHPUnit SO , а также Как получить 100 % Покрытия кода с помощью PHPUnit SO . Я не смог решить проблему с помощью либо.
Моя проблема заключается в том, что PHPUnit сообщает о различном проценте покрытия кода для того же теста, когда он выполняется изолированно, по сравнению с тем, когда запускается весь набор тестов. Поэтому, когда я запускаю только конкретный тест с использованием phpunit test/src/artax/UsesRequestTraitTest
, я получаю следующее покрытие:
Однако, если я запускаю свой полный набор тестов с использованием phpunit
без указания конкретного теста, я получаю следующее для того же файла:
Вот исходный код для теста:
<?php
class UsesRequestTraitTest extends PHPUnit_Framework_TestCase
{
public function testIsInitiallyEmpty()
{
$traitObj = $this->getObjectForTrait('artax\UsesRequestTrait');
$this->assertAttributeEmpty('request', $traitObj);
return $traitObj;
}
/**
* @depends testIsInitiallyEmpty
* @covers artax\UsesRequestTrait::setRequest
* @covers artax\UsesRequestTrait::getRequest
*/
public function testSetterAssignsRequestProperty($traitObj)
{
$r = new artax\blocks\http\HttpRequest();
$traitObj->setRequest($r);
$this->assertEquals($r, $traitObj->getRequest());
}
}
Если вы обратили внимание, вы увидите, что я тестирую черту PHP5.4. Я использую PHP5.4RC6 и версию xdebug магистрали 2.2, потому что релизная версия xdebug еще не поддерживает PHP5.4.
Возможно (вероятно?), Что это ошибка в xdebug или phpunit, которая еще не устранена из-за все еще развивающейся поддержки новой версии PHP, но я хотел бы получить другие мнения, прежде чем тратить заинтересованные стороны время с ненужным сообщением об ошибке. Кто-нибудь знает, что может вызвать это или как это исправить, чтобы мой компьютерщик OCD не сводил меня с ума из-за этого разрыва при 100% покрытии?
P.S. Вот фактический графический отчет о покрытии для 60% -ной версии покрытия. Строки, показанные как непокрытые ниже, имеют зеленый цвет (закрашены), когда тест проводится изолированно:
UPDATE
Я также пытался добавить @covers
аннотации для методов черты в тесты конкретных классов, которые use
черта, но это тоже не помогло ...