摘要:最近團(tuán)隊(duì)在不斷完善項(xiàng)目中的單元測試用例,會(huì)用到代碼覆蓋率分析,本來以為應(yīng)該默認(rèn)安裝了,所以使用來生成報(bào)告,但是執(zhí)行后提示如下錯(cuò)誤這是因?yàn)闆]有安裝或啟用導(dǎo)致。
最近團(tuán)隊(duì)在不斷完善項(xiàng)目中的單元測試用例,會(huì)用到代碼覆蓋率分析,本來以為 homestead 應(yīng)該默認(rèn)安裝了 xdebug ,所以使用 phpunit --coverage-html ./tests/codeCoverage 來生成 html 報(bào)告,但是執(zhí)行后提示如下錯(cuò)誤
Error: No code coverage driver is available
這是因?yàn)闆]有安裝或啟用 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)告,如下所示:
通過這樣的分析,能夠更好的幫助我們完善單元測試,保證代碼測試的完整性,也能讓我們的代碼更加健壯。
討論交流文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/28218.html
摘要:單元測試是一個(gè)為代碼編寫測試用例并自動(dòng)運(yùn)行這些測試的框架。測試驅(qū)動(dòng)的開發(fā)是一種單元測試方法,其思想是應(yīng)該首先編寫測試程序,并驗(yàn)證這些測試可以發(fā)現(xiàn)錯(cuò)誤,然后才開始編寫需要通過這些測試的代碼。 phpunit使用 標(biāo)簽(空格分隔): php 現(xiàn)在是凌晨 3 點(diǎn)。我們怎樣才能知道自己的代碼依然在工作呢?Web 應(yīng)用程序是 24x7 不間斷運(yùn)行的,因此我的程序是否還在運(yùn)行這個(gè)問題會(huì)在晚上一直...
摘要:以前在學(xué)習(xí)開發(fā)時(shí)有專門寫過的單元測試的文章,開發(fā)學(xué)習(xí)之單元測試,今天再總結(jié)下怎么在中使用單元測試。是一個(gè)用編程語言開發(fā)的開源軟件,是一個(gè)單元測試框架。單元測試框架經(jīng)常會(huì)包含每個(gè)測試的報(bào)告,以及給出你已經(jīng)覆蓋到的代碼覆蓋率。 以前在學(xué)習(xí)IOS開發(fā)時(shí)有專門寫過Objective-C的單元測試的文章,IOS開發(fā)學(xué)習(xí)之單元測試,今天再總結(jié)下怎么在PHP中使用單元測試。 一、前言 在這篇文章中,...
摘要:單元測試中,代碼覆蓋率經(jīng)常被用來衡量測試好壞的指標(biāo)。執(zhí)行的結(jié)果和導(dǎo)出的結(jié)果都可以在的下看到接下來就是把這些文件到上,就會(huì)自動(dòng)構(gòu)建,然后開始單元測試,并把測試結(jié)果中的代碼覆蓋率發(fā)送到。 本文以PHP項(xiàng)目作為例子所需要擁有(準(zhǔn)備)的: Github賬號(hào) 一個(gè)項(xiàng)目 看著篇幅挺大的,難免有什么遺漏,如果文中有錯(cuò)誤的地方,還請(qǐng)各位斧正!謝謝。因?yàn)楸緛砥痛螅跃蜎]配圖了,如果有很多人反...
摘要:上面的規(guī)定是必須遵守的,如果代碼沒有遵守規(guī)定不會(huì)把他當(dāng)做單元測試代碼。每個(gè)單元測試類以被測試的類名開頭。每個(gè)單元測試函數(shù)應(yīng)該為被測試函數(shù)名結(jié)尾。函數(shù)可能在測試環(huán)境不可執(zhí)行,那么無法獲取的執(zhí)行結(jié)果,從而無法對(duì)進(jìn)行單元測試。 本文首發(fā)于 https://jaychen.cc/article/34作者 Jaychen showImg(https://segmentfault.com/img/...
摘要:本系列教程所有的測試基于版本,框架目錄結(jié)構(gòu)模塊下的目錄是符合的模塊結(jié)構(gòu)的如等是模塊目錄下的結(jié)構(gòu)目錄如果有自己的目錄同級(jí)分配即可,如我這里的整體結(jié)構(gòu)重寫過基類的測試基類,用于我們用這個(gè)基類做測試基類,后續(xù)會(huì)說明自動(dòng)加載文件測試用例目錄某測試模 本系列教程所有的PHPUnit測試基于PHPUnit6.5.9版本,Lumen 5.5框架 目錄結(jié)構(gòu) 模塊下的目錄是符合Lumen的模塊結(jié)構(gòu)的如:...
閱讀 3553·2021-09-06 15:13
閱讀 1536·2021-09-02 10:19
閱讀 2483·2019-08-30 15:52
閱讀 930·2019-08-29 15:25
閱讀 1578·2019-08-26 18:36
閱讀 506·2019-08-26 13:23
閱讀 1347·2019-08-26 10:46
閱讀 3512·2019-08-26 10:41