微信小程序> Swoft单元测试基本坑

Swoft单元测试基本坑

浏览量:572 时间: 来源:Abel_JiaWei

前言:

基于项目中使用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)

后续再有什么坑,之后再写!!!!!!

版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

产品经理

手机 : 13312967497

擅长 : 小程序流量变现

扫码领取礼包

热门模板

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎