E企盈营销工具技术服务商 热线:4006-838-530

Swoft单元测试基本坑

E企盈直播平台营销卖货系统

前言:基于项目中使用swoft写Api接口服务,要求使用phpunit单元测试,趟过两个大坑。1. 报各种类的找不到,原因是swoft框架测试基础类SwoftTestTestingTestApplication 无法自动加载。解决办法:需要手动加载,更改文件test/bootstrap.php?phpuse ComposerAutoloadClassLoader;use SwoftTestTestingTestApplication;/** @var ClassLoader $loader */$loader = require dirname(__DIR__) . ‘/vendor/autoload.php’;$componentDir  = dirname($loader-findFile(“Swoft”), 2);$componentJson = $componentDir . ‘/composer.json’;$composerData  = json_decode(file_get_contents($componentJson), true);foreach ($composerData[‘autoload-dev’][‘psr-4’] as $prefix = $dir) {    $loader-addPsr4($prefix, $componentDir . ‘/’ . $dir);}//$FormPage= new AppTestingEntityFormPage();//var_dump($loader);die;$application = new TestApplication();$application-setBeanFile(__DIR__ . ‘/testing/bean.php’);$application-run();2. 报关于协程的错误PHP Fatal error:  Uncaught SwooleError: API must be called in the coroutine in /webroot/vendor/swoft/connection-pool/src/AbstractPool.php:296解决办法:到swoft兄弟项目Hyperf测试组件,把co-phpunit复制到你想放到的位置,我自己放到vender/bin/目录下,执行测试时用vendor/bin/co-phpunit就可以了。[root@you webroot]# vendor/bin/co-phpunit –configuration phpunit.xml –coverage-text –colors=neverPHPUnit 7.5.18 by Sebastian Bergmann and contributors……                                                               5 / 5 (100%)Time: 4.77 seconds, Memory: 38.00 MBOK (5 tests, 5 assertions)Generating code coverage report in HTML format … doneCode Coverage Report:        2019-12-18 19:47:35                                  Summary:                    Classes:  2.33% (2/86)     Methods:  3.67% (19/518)   Lines:    4.55% (61/1340)后续再有什么坑,之后再写!!!!!!

赞(0) 打赏
未经允许不得转载:E企盈小程序开发-热线:4006-838-530 » Swoft单元测试基本坑
分享到: 更多 (0)
E企盈小程序直播营销卖货系统
E企盈直播平台营销卖货系统

评论 抢沙发

E企盈小程序开发

联系我们联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏