【发布时间】:2016-02-26 03:42:41
【问题描述】:
我一直在尝试对我的 Wordpress 主题的自定义 PHP 类进行 phpunit 运行测试,但无论我如何尝试添加类引用,错误总是相同的:
Fatal error: Class '' not found in C:\...
文件目录正确。
为了清楚起见,Phpunit 运行良好,因为我可以只使用 Wordpress 调用运行虚拟测试,而且它可以正常工作。例如:
function testInactiveTheme() {
$this->assertFalse( 'Twenty Eleven' == wp_get_theme() );
}
文件结构如下:
MyTheme
- app
-- api
--- common.class.php
-- core
--- common.class.php
- assets
- tests
-- app
--- api
---- test-common.class.php
--- core
我的 phpunit.xml 位于 WordPress 根目录上,我指向的测试如下:
<testsuite name="api-testing">
<directory prefix="test-" suffix=".php">./wp-content/themes/stronach-wp/tests/app/api/</directory>
</testsuite>
如果有人能告诉我为什么 phpunit 不能识别我的 php 类,那就太好了。
谢谢。
================================================ =========================== 更新:
我关注了 Ivan advice,并使用了作曲家的自动加载,现在正在工作。
{
"autoload":{
"psr-4": {
"App\\": "app/"
}
}
}
当我刚刚将它添加到我的 composer.json 文件时,它不起作用,因为您需要首先运行一个 composer 命令,因此会生成加载文件。
composer dump-autoload
现在,仍然无法正常工作,问题是文件名,为此,文件需要匹配类名,在我的情况下,我需要将“common.class.php”重命名为“Common .class”。
另外,在测试本身上,需要 composer "autoload.php" 文件。
感谢您的帮助,希望这个解决方案可以帮助更多的人。
【问题讨论】:
标签: wordpress phpunit wordpress-theming