【发布时间】:2016-07-10 09:43:57
【问题描述】:
问题
我正在尝试为 Wordpress 插件的代码更改编写测试。
<?php
require_once('.\simpletest\autorun.php');
require_once('.\wp-content\plugins\appointment-booking\includes.php');
// The line above causes [No runnable test cases in...] problem.
// In my actual code, I have absolute path and I've made sure that the path is correct.
class test extends UnitTestCase
{
function test_pass()
{
$this->assertFalse(false);
}
}
?>
请帮助我了解为什么以及如何解决。 如评论中所述,第二个 require_once 导致错误 [No runnable test cases in...]
例如:
Bad TestSuite [test.php] with error [No runnable test cases in [test.php]]
我希望不会看到 Bad TestSuite 错误。我希望它能够运行测试,就像在第二个 require_once 被注释掉时那样。
我看到这里描述了这个确切的问题:PHP - Simpletest - How to test "included" classes,但我不明白这个问题,或者如何解决。谢谢。
回答 2016 年 3 月 25 日
因为我无法让这个问题脱离“等待”状态,也找不到回答问题的方法。我在这里写解决方案。
Vincent 的回答中的 get_home_path() 帮助我找到了原因,因此我将其标记为答案,尽管从技术上讲它不是真的。当我尝试在我的代码中使用它时,我不能 - 函数名称和 ABSPATH 等没有定义。原因是它不被认为是 WordPress 的一部分。
进一步搜索发现https://stackoverflow.com/a/27514259/5885721 调试发现我想包含的 WordPress 文件有这个代码
<?php if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
因此,这就是为什么在运行 require 函数时,它停止了一切,并且没有找到任何测试。要修复,请添加
require( dirname( __FILE__ ) . '/wp-blog-header.php' );
而不是第二个 require_once 和 ABSPATH 将被正确设置,我可以使用 WordPress API 和插件的代码并编写测试用例。
【问题讨论】:
-
你能更新你的qus吗,有错误。
标签: php eclipse wordpress testing simpletest