2017-06-09 151 views
1

我在Yii2中通過竹CI服務器運行Codeception並使用SonarQube來幫助運行分析。Codeception&SonarQube PHP [無法讀取phpUnit報告]

到目前爲止,我已經設法讓SonarPHP分析PHP - 這非常棒。但是我一直無法得到它包括報道報道。我正在製作一份三葉草報道報道。

這是我codecept命令:

${bamboo.php} ${bamboo.composer} exec codecept run unit models/HelperTest.php -- --xml --coverage --coverage-xml

sonar.projectKey=CR 
sonar.projectName=CCasper Reporting 
sonar.projectVersion=4.0 
sonar.language=php 
sonar.sources=models, controllers, components, modules/api/models, modules/api/controllers 
sonar.sourceEncoding=UTF-8 
sonar.tests=tests/api/models, tests/unit/models 
sonar.php.tests.reportPath=tests/bamboo/report.xml 
sonar.php.coverage.reportPath=tests/bamboo/coverage.xml 
sonar.php.coverage.itReportPath=tests/bamboo/coverage.xml 
sonar.coverage.exclusions=tests/*.php 

java.lang.IllegalStateException:無法讀取PHPUnit的報告:com.thoughtworks.xstream:由造成report.xml將 。 mapper.CannotResolveClassException:testsuites:testsuites

我假設這是因爲生成文件:

<?xml version="1.0" encoding="UTF-8"?> 
<testsuites> 
    <testsuite name="unit" tests="2" assertions="2" errors="0" failures="0" skipped="0" time="0.015625"> 
    <testcase name="testGetRange" class="tests\models\HelperTest" file="C:\bamboo-home\xml-data\build-dir\CR-QA-JOB1\tests\unit\models\HelperTest.php" assertions="1" time="0.015625"/> 
    <testcase name="testBadDateCheckerParam" class="tests\models\HelperTest" file="C:\bamboo-home\xml-data\build-dir\CR-QA-JOB1\tests\unit\models\HelperTest.php" assertions="1" time="0.000000"/> 
    </testsuite> 
</testsuites> 

所以我的問題是,我如何得到SonarPHP 5.5.6正確納入覆蓋面?

+0

什麼是SonarPHP和SQ你的版本使用? –

+0

嗨@ElenaVilchik我已經在下面回答了我的問題。如果我的設置中缺少某些可能對其他人有用的信息,請告知我。 – Jonnny

回答

0

我已經花了一些時間,並設法使用以下設置來整合代碼覆蓋範圍。

${bamboo.php} ${bamboo.composer} exec codecept run -- --verbose --xml --coverage --coverage-xml --coverage-html --no-exit

--xml參數創建一個JUnit文件。 在竹編內添加一個JUNIT任務,在我的情況下,路徑是/tests/bamboo/*.xml。這是Yii2和我自定義創建的竹文件夾所特有的。

--coverage,--coverage-xml,--coverage-html創建三葉草風格覆蓋項目。

在Bamboo的雜項部分中,您可以啓用三葉草覆蓋。因爲這與Yii打包在一起,所以您只需單擊「Clover已經集成到此構建中並生成一個clover.xml文件」。選項並指定.xml文件的路徑。

我的是:測試/竹/ coverage.xml

我然後運行聲納掃描儀。我的項目根我有以下的聲納屬性文件。

我的聲納PHP文件(5.56 SonarQube和假設最新的PHP插件,因爲它是從聲納服務器網絡接口下載。

sonar.projectKey = CR

sonar.projectName = CCasper報告

sonar.projectVersion = 4.0

sonar.language = PHP

sonar.sources =模型,控制器,組件,模塊/ api /模型,模塊/ api /控制器

聲納。sourceEncoding = UTF-8

sonar.php.coverage.reportPath =測試/竹/ coverage.xml

這似乎這樣的伎倆,我

+0

您停止提供「sonar.php.tests.reportPath」(單元測試結果),並且此部分最初失敗。 –