這篇文章主要介紹了關於thinkphp3.2.3怎樣使用think-phpunit來進行單元測試的介紹,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下
問題描述
thinkphp3.2.3官方並沒有提供單元測試的工具。隨著項目的增大,要保證代碼的健壯性,單元測試不得不提上議程。經實踐,https://github.com/snowair/think-phpunit
是個不錯的選擇,但在使用過程中出現const
未定義的錯誤。具體報錯資訊為:syntax error, unexpected 'const' (T_CONST),
問題分析
const
關鍵字提示法錯誤,說明當前的PHPUNIT
並不支援該文法,查閱官方文檔發現,const
為php5.3
新引用的功能。所以根本原因應該是PHPUNIT
版本過低引起的。
const定義常量的官方地址說明:http://php.net/manual/zh/lang...
我們查看vender\snowair/composer.json
發現以下代碼:
"require": { "php":">=5.4", "phpunit/phpunit": "^4.7" }
即要求phpunit
版本為>=4.7 && <5.0
。至此問題原因確認。至phpunit
版本過低引發的關鍵字錯誤。
解決方案:
參考php composer
的VCS
版本控制部分,修改phpunit
的版本號碼。
fork
原項目至自己的倉庫。比如我fork
後的項目地址為:https://github.com/callme119/think-phpunit
.
https://github.com/callme119/think-phpunit
中的composer.json檔案,將phpunit的版本修改為^5.0
修改項目引用的VCS部分。增加repositories
屬性。
比如我的項目引用,修改後為:
{ "name": "topthink/thinkphp", "description": "the ThinkPHP Framework", "type": "framework", "keywords": ["framework","thinkphp","ORM"], "homepage": "http://thinkphp.cn/", "license": "Apache2", "authors": [ { "name": "liu21st", "email": "liu21st@gmail.com" } ], "require": { "php": ">=5.3.0" }, "autoload": { "classmap": ["Application","ThinkPHP/Library"] }, "autoload-dev": { "psr-0": { "": "test" } }, "repositories": [ { "type": "vcs", "url": "https://github.com/callme119/think-phpunit" } ], "require-dev": { "snowair/think-phpunit": "dev-master" }, "minimum-stability": "dev"}
composer VCS官方地址: https://docs.phpcomposer.com/...
總結
如果你只要想正常的使用snowair/think-phpunit
, 那麼請參閱https://github.com/callme119/think-phpunit
進行安裝即可。
如果你是其它的項目的版本問題,請參閱本文,利用github來進行修複後,並在自己項目的composer.json
中,增加repositories
屬性來指明特定倉庫。
以上就是本文的全部內容,希望對大家的學習有所協助,更多相關內容請關注topic.alibabacloud.com!