php - PHP:运行“codeception run wpunit”时出现类加载问题
问题描述
我最近将 composer.json 中的自动加载从类列表切换到 psr-4。然后在终端中,我vendor/bin/composer dump-autoload
在项目根目录中运行,这是一个插件目录。
我的自动加载设置:
"autoload": {
"psr-4": { "A\\" : "classes/A" }
}
./classes/A 中只有 1 个类,所以当控制台说它加载了 545 个类时,这是一个问题。我仔细检查了我是否在正确的(插件)文件夹中而不是 wordpress 根目录中。
似乎作曲家从以下 3 个级别开始递归加载每个 wordpress 类。我得到了一个错误列表,这里有一些最重要的错误。
owner@G700:/var/www/html/wptest2/wp-content/plugins/fvc$ vendor/bin/codecept run wpunit
Codeception PHP Testing Framework v2.5.6
Powered by PHPUnit 7.5.10 by Sebastian Bergmann and contributors.
Running with seed:
PHP Warning: call_user_func_array() expects parameter 1 to be a valid callback, class 'Utilities' not found in /var/www/html/wptest2/wp-includes/class-wp-hook.php on line 286
PHP Stack trace:
PHP 1. {main}() /var/www/html/wptest2/wp-content/plugins/fvc/vendor/lucatume/wp-browser/src/includes/isolated-install.php:0
PHP 2. activate_plugin() /var/www/html/wptest2/wp-content/plugins/fvc/vendor/lucatume/wp-browser/src/includes/isolated-install.php:210
PHP 3. do_action() /var/www/html/wptest2/wp-admin/includes/plugin.php:660
PHP 4. WP_Hook->do_action() /var/www/html/wptest2/wp-includes/plugin.php:465
PHP 5. WP_Hook->apply_filters() /var/www/html/wptest2/wp-includes/class-wp-hook.php:310
PHP Warning: require_once(../../vendor/autoload.php): failed to open stream: No such file or directory in /var/www/html/wptest2/wp-content/plugins/fvc/tests/wpunit/T1Test.php on line 2
PHP Stack trace:
PHP 1. {main}() /var/www/html/wptest2/wp-content/plugins/fvc/vendor/codeception/codeception/codecept:0
PHP 2. Codeception\Application->run() /var/www/html/wptest2/wp-content/plugins/fvc/vendor/codeception/codeception/codecept:43
PHP 3. Codeception\Application->run() /var/www/html/wptest2/wp-content/plugins/fvc/vendor/codeception/codeception/src/Codeception/Application.php:108
这是自动加载错误吧?知道如何解决这个问题吗?
如果这可能是其他东西,我将包括我正在运行的测试文件。这是唯一应该使用该命令运行的测试文件vendor/bin/codecept run wpunit
<?php
require_once("../../vendor/autoload.php");
require_once ('../../classes/A/T1.php');
class T1Test extends \Codeception\TestCase\WPTestCase
{
public function testAdd() {
$t1 = new \T1();
$this->assertEquals(1, 1);
$sum = $t1->add(5, 2);
$this->assertEquals(7, $sum, "didn't sum");
}
}
解决方案
推荐阅读
- python - 使用 Flask-Login 登录时防止用户访问登录页面
- sql - 如何按条件按同一文件两次订购
- python - 从列标题中删除整数列表键
- java - 如何获取在 SSL/TLS 握手期间建立的对称密钥(会话密钥)以加密/解密消息?
- javascript - 渲染后超链接的点击功能不可用
- html - 我如何使用(css和html)使用任何代码将pdf输入html
- spring-boot - Apache druid 通过本机查询和 Spring 启动进行分页
- salesforce - SalesForce - 如何使用汇总公式计算一个日期是否在另一个日期之前?
- reactjs - 如何在 reactjs 上实现 zkteco 指纹扫描仪
- python-3.x - Python 脚本未按预期打印输出