Jenkins PhpUnit — проблемы CodeCoverage

Я работаю над проектом с несколькими классами и методами, и я хочу использовать PHPUnit для тестирования каждого случая и предотвращения проблем с инструментом по имени Дженкинс. (Мониторинг сервера)

Цель этого инструмента состоит в том, чтобы иметь представление о покрытие кода. Я могу видеть, куда пошел PhpUnit во время тестового пакета.

Но я не думаю, что CodeCoverage везде в моем классе и методы.

Пример :

Class Class1Test {
Public method1 ( $inputs )  {
$var = Class3::setVar();
Return Class2 :: Method1 ( $inputs, $var ) ;
}
}

Class Class2 {
Public static method2 ( $inputs, $var ) {
Echo ‘’ hi there ! $inputs ‘’ ;
}
}

Поэтому, когда я тестирую с PhpUnit, вроде:

Class Test extends PhpUnit… {
…
testmethod2( ) {
$this->assertNotEmpty( $inputs ) ;
}
}

CodeCoverage не покрывать Мой Class2: Method1 в codeCoverage.
Конечно, это небольшой пример, в моем проекте я получил гораздо больше описания классов и методов, а CodeCoverage охватывает только вызовы классов и методов в тестовом файле.

Есть ли способ рассмотреть все мои методы с помощью одного теста?

Спасибо большое кашица за помощь.

РЕДАКТИРОВАТЬ ***

Вот мой phpunit.xml:

<phpunit
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/3.7/phpunit.xsd"backupGlobals="false"backupStaticAttributes="false"bootstrap="src/TJS/bootstrap.php"cacheTokens="true"colors="true"
convertErrorsToExceptions="true"convertWarningsToExceptions="true"convertNoticesToExceptions="false"
forceCoversAnnotation="false"mapTestClassNameToCoveredClassName="false"printerClass="PHPUnit_TextUI_ResultPrinter"
processIsolation="false"stopOnError="false"stopOnFailure="false"stopOnIncomplete="false"stopOnSkipped="false"strict="false"verbose="true"
checkForUnintentionallyCoveredCode="false">

<testsuites>
<testsuite name="TJS">
<directory suffix="Test.php">src/TJS/_tests_unit/classes/</directory>
<!--<directory suffix="Test.php">tests/integration/</directory>-->
</testsuite>
</testsuites>

<filter>
<whitelist addUncoveredFilesFromWhitelist="true">
<directory suffix=".php">src/TJS/classes</directory>
</whitelist>
</filter><logging>
<log type="coverage-html" target="build/coverage"/>
<log type="coverage-crap4j" target="build/logs/crap4j.xml"/>
<log type="coverage-clover" target="build/logs/clover.xml"/>
<log type="junit" target="build/logs/junit.xml" logIncompleteSkipped="false"  />
</logging>
</phpunit>

-2

Решение

Вы не вызываете методы, поэтому нет покрытия.
Но я думаю, что знаю, что вы имеете в виду. По умолчанию в отчет о покрытии кода не включены какие-либо классы, для которых нет выполнения, поэтому их нет в отчете о покрытии, и процент покрытия кажется выше. Чтобы исправить это, добавьте в phpunit.xml

<filter>
<whitelist addUncoveredFilesFromWhitelist="true">
<directory suffix=".php">../app</directory>
</whitelist>
</filter>

(предполагается, что ваше приложение находится в ./app, а ваш phpunit.xml — в ./tests, например)

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]