摘要:最近團(tuán)隊(duì)在不斷完善項(xiàng)目中的單元測(cè)試用例,會(huì)用到代碼覆蓋率分析,本來(lái)以為應(yīng)該默認(rèn)安裝了,所以使用來(lái)生成報(bào)告,但是執(zhí)行后提示如下錯(cuò)誤這是因?yàn)闆](méi)有安裝或啟用導(dǎo)致。
最近團(tuán)隊(duì)在不斷完善項(xiàng)目中的單元測(cè)試用例,會(huì)用到代碼覆蓋率分析,本來(lái)以為 homestead 應(yīng)該默認(rèn)安裝了 xdebug ,所以使用 phpunit --coverage-html ./tests/codeCoverage 來(lái)生成 html 報(bào)告,但是執(zhí)行后提示如下錯(cuò)誤
Error: No code coverage driver is available
這是因?yàn)闆](méi)有安裝或啟用 xdebug 導(dǎo)致。
個(gè)人環(huán)境:
PHP 7.2.0-1+ubuntu16.04.1
install xdebug$ wget https://xdebug.org/files/xdebug-2.6.0.tgz $ tar xvzf xdebug-2.6.0.tgz $ cd xdebug-2.6.0 $ phpize7.2 $ ./configure --enable-xdebug $ make $ sudo make installenable xdebug for php
find /usr/ -name "xdebug.so"
/usr/lib/php/20170718/xdebug.so //剛剛安裝的 xdebug 2.6.0 版本 /usr/lib/php/20131226/xdebug.so /usr/lib/php/20160303/xdebug.so /usr/lib/php/20151012/xdebug.so
vi /etc/php/7.2/cli/php.ini
添加如下代碼到 php.ini 結(jié)尾處
zend_extension="/usr/lib/php/20170718/xdebug.so" xdebug.remote_enable = 1 xdebug.remote_connect_back = 1 xdebug.remote_port = 9000 xdebug.max_nesting_level = 500build code coverage report
有兩種方法:
1.直接執(zhí)行 phpunit --coverage-html ./tests/codeCoverage 命令
2.在 phpunit.xml 添加如下代碼:
然后直接執(zhí)行 phpunit 即可。
完成會(huì)在 tests/codeCoverage 目錄下生成 html 報(bào)告,如下所示:
通過(guò)這樣的分析,能夠更好的幫助我們完善單元測(cè)試,保證代碼測(cè)試的完整性,也能讓我們的代碼更加健壯。
討論交流文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/28218.html
摘要:?jiǎn)卧獪y(cè)試是一個(gè)為代碼編寫(xiě)測(cè)試用例并自動(dòng)運(yùn)行這些測(cè)試的框架。測(cè)試驅(qū)動(dòng)的開(kāi)發(fā)是一種單元測(cè)試方法,其思想是應(yīng)該首先編寫(xiě)測(cè)試程序,并驗(yàn)證這些測(cè)試可以發(fā)現(xiàn)錯(cuò)誤,然后才開(kāi)始編寫(xiě)需要通過(guò)這些測(cè)試的代碼。 phpunit使用 標(biāo)簽(空格分隔): php 現(xiàn)在是凌晨 3 點(diǎn)。我們?cè)鯓硬拍苤雷约旱拇a依然在工作呢?Web 應(yīng)用程序是 24x7 不間斷運(yùn)行的,因此我的程序是否還在運(yùn)行這個(gè)問(wèn)題會(huì)在晚上一直...
摘要:以前在學(xué)習(xí)開(kāi)發(fā)時(shí)有專門(mén)寫(xiě)過(guò)的單元測(cè)試的文章,開(kāi)發(fā)學(xué)習(xí)之單元測(cè)試,今天再總結(jié)下怎么在中使用單元測(cè)試。是一個(gè)用編程語(yǔ)言開(kāi)發(fā)的開(kāi)源軟件,是一個(gè)單元測(cè)試框架。單元測(cè)試框架經(jīng)常會(huì)包含每個(gè)測(cè)試的報(bào)告,以及給出你已經(jīng)覆蓋到的代碼覆蓋率。 以前在學(xué)習(xí)IOS開(kāi)發(fā)時(shí)有專門(mén)寫(xiě)過(guò)Objective-C的單元測(cè)試的文章,IOS開(kāi)發(fā)學(xué)習(xí)之單元測(cè)試,今天再總結(jié)下怎么在PHP中使用單元測(cè)試。 一、前言 在這篇文章中,...
摘要:?jiǎn)卧獪y(cè)試中,代碼覆蓋率經(jīng)常被用來(lái)衡量測(cè)試好壞的指標(biāo)。執(zhí)行的結(jié)果和導(dǎo)出的結(jié)果都可以在的下看到接下來(lái)就是把這些文件到上,就會(huì)自動(dòng)構(gòu)建,然后開(kāi)始單元測(cè)試,并把測(cè)試結(jié)果中的代碼覆蓋率發(fā)送到。 本文以PHP項(xiàng)目作為例子所需要擁有(準(zhǔn)備)的: Github賬號(hào) 一個(gè)項(xiàng)目 看著篇幅挺大的,難免有什么遺漏,如果文中有錯(cuò)誤的地方,還請(qǐng)各位斧正!謝謝。因?yàn)楸緛?lái)篇幅就大,所以就沒(méi)配圖了,如果有很多人反...
摘要:上面的規(guī)定是必須遵守的,如果代碼沒(méi)有遵守規(guī)定不會(huì)把他當(dāng)做單元測(cè)試代碼。每個(gè)單元測(cè)試類(lèi)以被測(cè)試的類(lèi)名開(kāi)頭。每個(gè)單元測(cè)試函數(shù)應(yīng)該為被測(cè)試函數(shù)名結(jié)尾。函數(shù)可能在測(cè)試環(huán)境不可執(zhí)行,那么無(wú)法獲取的執(zhí)行結(jié)果,從而無(wú)法對(duì)進(jìn)行單元測(cè)試。 本文首發(fā)于 https://jaychen.cc/article/34作者 Jaychen showImg(https://segmentfault.com/img/...
摘要:本系列教程所有的測(cè)試基于版本,框架目錄結(jié)構(gòu)模塊下的目錄是符合的模塊結(jié)構(gòu)的如等是模塊目錄下的結(jié)構(gòu)目錄如果有自己的目錄同級(jí)分配即可,如我這里的整體結(jié)構(gòu)重寫(xiě)過(guò)基類(lèi)的測(cè)試基類(lèi),用于我們用這個(gè)基類(lèi)做測(cè)試基類(lèi),后續(xù)會(huì)說(shuō)明自動(dòng)加載文件測(cè)試用例目錄某測(cè)試模 本系列教程所有的PHPUnit測(cè)試基于PHPUnit6.5.9版本,Lumen 5.5框架 目錄結(jié)構(gòu) 模塊下的目錄是符合Lumen的模塊結(jié)構(gòu)的如:...
閱讀 3624·2021-09-06 15:13
閱讀 1601·2021-09-02 10:19
閱讀 2548·2019-08-30 15:52
閱讀 983·2019-08-29 15:25
閱讀 1645·2019-08-26 18:36
閱讀 578·2019-08-26 13:23
閱讀 1408·2019-08-26 10:46
閱讀 3574·2019-08-26 10:41