使用Jenkins在CakePHP中的lib文件夹的覆盖率报告?

时间:2013-01-19 02:33:03

标签: cakephp jenkins continuous-integration code-coverage

我正在尝试将Jenkins与CakePHP一起使用,作为推动更好CI的一部分。

我正在使用以下命令进行构建作业步骤。

/var/lib/jenkins/workspace/ABC-MASTER/src/abc/Console/cake testsuite -app 
/var/lib/jenkins/workspace/ABC-MASTER/src/abc app AllTests --log-junit 
/var/lib/jenkins/workspace/ABC-MASTER/build/logs/junit.xml --coverage-clover 
/var/lib/jenkins/workspace/ABC-MASTER/build/logs/clover.xml --coverage-html 
/var/lib/jenkins/workspace/ABC-MASTER/build/coverage

即使对于lib文件夹,也会生成覆盖率报告。

我的问题是:

  1. 我是否应该为lib文件夹生成coverage html页面?
  2. 如果没有,我该如何关闭它?
  3. 我的代码结构如下:

    build
    src
       abc (this is the app folder)
       lib ( this is the Cake lib folder)
    tests
       Test (this follows the Cake convention)
    

1 个答案:

答案 0 :(得分:0)

解决方案有3个部分:

1)在项目根目录中创建一个phpunit.xml.dist。

构建 SRC    abc(这是app文件夹)    lib(这是Cake lib文件夹) 测试    测试(这遵循Cake惯例) build.xml文件 phpunit.xml.dist

2)在phpunit.xml.dist

中创建以下内容
<?xml version="1.0" encoding="UTF-8"?>

<phpunit>

  <filter>
    <blacklist>
      <directory suffix=".php">src/lib</directory>
    </blacklist> 
  </filter>

</phpunit>

3)将--configuration /path/to/phpunit.xml.dist添加到命令中。

在问题中给出的示例中,这变为:

/var/lib/jenkins/workspace/ABC-MASTER/src/abc/Console/cake test \
--app /var/lib/jenkins/workspace/ABC-MASTER/src/abc app AllTests \
--log-junit /var/lib/jenkins/workspace/ABC-MASTER/build/logs/junit.xml \
--coverage-clover /var/lib/jenkins/workspace/ABC-MASTER/build/logs/clover.xml \
--coverage-html /var/lib/jenkins/workspace/ABC-MASTER/build/coverage \
--configuration /var/lib/jenkins/workspace/ABC-MASTER/phpunit.xml.dist

有关如何使用phpunit配置文件的更多信息,请查看此link。这将有助于理解如何使用phpunit配置文件,特别是黑名单和白名单部分。