PHPUnit结合SonarQube的使用笔记

前提: 1,SonarQube已经安装好且已经安装了sonar-php-plugin,并且在测试服务器上也安装并配置好了sonar-scanner 2,安装了phpunit5.3版本 先安装Composer,直接从官网下载composer.phar文件,然后同目录建立一个composer.cmd文件,内容如下

@php "%~dp0composer.phar" %*

在linux下直接把composer.phar直接放入bin目录,并且改名为composer即可

mv composer.phar composer
chmod a+x composer
 这时候,就可以执行composer命令了。
 然后建立一个文件composer.json,
 内容如下:
     {
    "require-dev": {
        "phpunit/phpunit": "5.3.*"
     }
     }
 通过执行composer install来安装phpunit,它会自动安装phpunit和它依赖的各种组件

 然后把D:\Program Files (x86)\php-5.6.9\vendor\bin配置到PATH路径中即可

测试步骤: 1,建立一个顶级目录projectA, 2,在该顶级目录下建立两个目录src和tests,分别用于放置业务代码文件和测试代码文件 3,在该顶级目录下建立一个配置文件sonar-project.properties,内容如下:

sonar.projectKey=org.sonarqube:php-ut-sq-scanner
sonar.projectName=PHP :: PHPUnit :: SonarQube Scanner
sonar.projectVersion=1.0

sonar.sources=src
sonar.tests=tests

sonar.language=php

sonar.sourceEncoding=UTF-8

# Reusing PHPUnit reports
sonar.php.coverage.reportPath=reports/phpunit.coverage.xml
sonar.php.tests.reportPath=reports/phpunit.xml

sonar.sources和sonar.tests必须配置,但可以设置为空,因为我们这里只是把分析报告上传即可,不需要再执行覆盖率检查了。

4,在src下面编写业务类代码 5,在tests下面编写测试类代码 6,在顶级目录下执行

phpunit

这时候就会在顶级目录下得到一个文件夹reports,里面有两个测试报文文件,分别是测试报告和测试覆盖率报告

但需要在顶级目录下有一个phpunit.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<phpunit cacheTokens="false"
         colors="false"
         convertErrorsToExceptions="true"
         convertNoticesToExceptions="true"
         convertWarningsToExceptions="true"
         forceCoversAnnotation="false"
         mapTestClassNameToCoveredClassName="false"
         printerClass="PHPUnit_TextUI_ResultPrinter"
         processIsolation="false"
         stopOnError="false"
         stopOnFailure="false"
         stopOnIncomplete="false"
         stopOnSkipped="false"
         stopOnRisky="false"
         testSuiteLoaderClass="PHPUnit_Runner_StandardTestSuiteLoader"
         timeoutForSmallTests="1"
         timeoutForMediumTests="10"
         timeoutForLargeTests="60"
         verbose="false">

        <!-- Here you can define many 'testsuite' elements -->
        <testsuites>
            <testsuite name="onetestsuite">
                <directory suffix=".php">tests</directory>
            </testsuite>
    </testsuites>


    <!-- 代码覆盖率 -->
    <filter>
        <whitelist addUncoveredFilesFromWhitelist="true">
                       <directory suffix="Test.php">src</directory>
        </whitelist>
    </filter>

    <!--代码覆盖率报告和单元测试报告--> 
    <logging>
            <log type="coverage-clover" target="reports/phpunit.coverage.xml"/>
            <log type="junit" target="reports/phpunit.xml" logIncompleteSkipped="false"/>
    </logging>

      <!--Set environment variables-->
    <php>
        <includePath>.</includePath>
        <ini name="foo" value="bar"/>
        <const name="foo" value="bar"/>
        <var name="foo" value="bar"/>
        <env name="foo" value="bar"/>
        <post name="foo" value="bar"/>
        <get name="foo" value="bar"/>
        <cookie name="foo" value="bar"/>
        <server name="foo" value="bar"/>
        <files name="foo" value="bar"/>
        <request name="foo" value="bar"/>
    </php>      

</phpunit>

7,在顶级目录下执行以下命令,就会将两个测试报告文件和src和tests目录下的文件都提交给SonarQube服务器(前提是Sonar已经都配置好了) (D:\sonar-scanner-2.6.1\bin\sonar-scanner.bat这个路径或者在linux就放入PATH环境变量中)

sonar-scanner

重复步骤4~7,就会更新SonarQube端的报告数据。

转载于:https://my.oschina.net/xuhh/blog/725966

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值