如何为php报告配置Jenkins?

我正在努力设置代码覆盖率.
我该怎么办,如何设置,以便我可以得到报道地图/报告?

我有一个运行的单元测试.我必须检查哪些复选框:构建后操作?
我必须安装一个插件吗?单元测试在PHP 5.3.2中,我运行symfony 1.4.5

在cibuild脚本中我运行:

PHP "test/unit/RbcTest.PHP"

这里是实际的测试代码

<?PHP
  require_once dirname(__FILE__).'/../bootstrap/unit.PHP';
  require_once 'PHP/CodeCoverage/Autoload.PHP';
  set_include_path ('phoenix/lib/');
  $coverage = new PHP_CodeCoverage;
  $coverage->start('strtolowerTest.PHP');
  $coverage->stop();
  $writer = new PHP_CodeCoverage_Report_Clover;
  $writer->process($coverage, 'phoenix/test/clover.xml');
  $writer = new PHP_CodeCoverage_Report_HTML;
  $writer->process($coverage, 'phoenix/test/code-coverage-report');
?>

<?PHP //strtolowerTest.PHP
echo "1. for strlower";
require_once 'phoenix/lib/vendor/symfony/lib/vendor/lime/lime.PHP';
echo "2. for strlower";
require_once 'phoenix/lib/validator/myValidatorString.class.PHP';
echo "3. for strlower";
require_once 'phoenix/lib/vendor/symfony/lib/validator/sfValidatorString.class.PHP';
$t = new lime_test(2,  new lime_output_color());
$t->is(myValidatorString::doCleanEmail('blabla-32.mtmail..com'), 'blabla@mtmail.com');
$t->is(myValidatorString::doClean('@#*+??%^!~blabla-===32.mtmail..com'), 'blabla@mtmail.com');
$t->is(myValidatorString::slugify('sensio   labs'), 'sensio-labs');
$t->is(myValidatorString::slugify('paris,france'), 'paris-france');
$t->is(myValidatorString::slugify('  sensio'), 'sensio');
$t->is(myValidatorString::slugify('sensio  '), 'sensio');
$t->is(myValidatorString::slugify(''), 'n-a', '::slugify() converts the empty string to n-a');
$t->is(myValidatorString::slugify(' - '), 'n-a', '::slugify() converts a string that only contains non-ASCII characters to n-a');

$t->diag('hello world');
$t->ok(true, 'test something');
?> 

请帮忙
谢谢

以下是我在jenkins中查看控制台构建时的输出

PHPUnit 3.6.10 by Sebastian Bergmann.

Class test/PHPunit/unit/RbcTest Could not be found in /var/lib/jenkins/workspace/b32b733b59ba6be9884da7427bee5c95/phoenix/test/PHPunit/unit/RbcTest.PHP.Publishing Clover coverage report...
Publishing Clover HTML report...
Publishing Clover XML report...
Publishing Clover coverage results...
Code coverage enforcement Failed for the following metrics:
    Methods
    Conditionals
Setting Build to unstable.
Build step 'Publish Clover Coverage Report' changed build result to UNSTABLE
Publishing Clover coverage report...
Publishing Clover XML report...
Publishing Clover coverage results...
Code coverage enforcement Failed for the following metrics:
    Methods
Setting Build to unstable.
[ci-game] evaluating rule: Build result
[ci-game] evaluating rule: Increased number of Failed tests
[ci-game] evaluating rule: Increased number of passed tests
[ci-game] evaluating rule: Decreased number of Failed tests
[ci-game] evaluating rule: Decreased number of passed tests
[ci-game] evaluating rule: PMD violation
[ci-game] evaluating rule: pylint violation
[ci-game] evaluating rule: CPD violation
[ci-game] evaluating rule: Checkstyle violation
[ci-game] evaluating rule: FindBugs violation
[ci-game] evaluating rule: FXcop violation
[ci-game] evaluating rule: Simian violation
[ci-game] evaluating rule: Stylecop violation
[ci-game] evaluating rule: HIGH priority PMD warnings
[ci-game] evaluating rule: norMAL priority PMD warnings
[ci-game] evaluating rule: LOW priority PMD warnings
[ci-game] evaluating rule: Changed number of compiler warnings
[ci-game] evaluating rule: Changed number of checkstyle warnings
Finished: UNSTABLE



 <?PHP
 class myValidatorString extends sfValidatorString
 {
    static public function slugify($text)
   {
       echo "in myvalidatorstring for class sfValidatorString.class.PHP";
       // replace all non letters or digits by -
       $text = preg_replace('/\W+/', '-', $text);

       // trim and lowercase
       $text = strtolower(trim($text, '-'));

       if (empty($text))
       {
        return 'n-a';
       }
       return $text;
   }
 }

谢谢

解决方法:

PHP本身不会生成代码覆盖率信息. Xdebug扩展将收集脚本运行时执行的行,但不会创建报告.您应该使用PHPUnitPHP_CodeCoverage来运行测试并输出Jenkins可以提供的报告.

使用pecl为其他两个安装Xdebug和pear.您还应该看看Template for Jenkins Jobs for PHP Projects.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...