2008-12-30 75 views
1

我想在控制台模式下使用php并创建一个环境来测试我的功能。使用php cli创建测试环境

我不想被迫使用Web浏览器,并且每次我想测试一个函数时都会创建一个新文件。

我想访问控制台中的函数,然后返回结果。

我该怎么做?

更新:

也许是我不好解释这一点。我只想看看函数返回的结果。

也许我必须学习单元测试,但目前我只想要一个交互式控制台,它允许我逐个测试所有功能。

在我的情况下,我必须加载WordPress的功能(我知道如何与一个普通的.php文件,然后浏览器来解析文件),但我不,如果有可能做到这一点与PHP从命令行。

+0

我看过你的问题和你的后续解释,但仍然没有完全理解你想达到的目标。你想执行shell PHP来验证wordpress函数返回正确的值吗? – mark 2008-12-30 10:53:27

回答

1

我在过去使用phpsh,发现它非常有用。一旦你开始它,你将需要chdir()到你的文件的位置,然后明确地require()任何文件包含你需要测试的功能。然后你可以通过在shell中输入函数来测试你的函数调用,例如var_dump(some_function(1, 2));

0

您将要阅读一般意义上的“单元测试”,然后尝试将它们应用于PHP。

您正在使用的框架(如果有),代码样式以及要运行的测试将确定您需要使用的确切方法。只有首先了解单元测试的概念,并将其应用到您的编码最佳实践中,才能在这方面取得进展。

0

如何:

php -a 

如果您编译readline的支持PHP它会更看中。

1

我想你应该更确切地说明什么样的功能。 Wordpress不提供类似的东西,大多数PHP应用程序不会。

我也认为你在这里呼唤麻烦,因为这种应用程序在这种环境下没有开发出来。

下面是一个试图从函数中调用“current_time()”的示例。PHP和尝试我不得不这样做只是为了实现它不会工作方式:


php -r 'require "functions.php"; var_dump(current_time("mysql"));' 


Fatal error: Call to undefined function apply_filters() in functions.php on line 346 

试图


php -r 'require "functions.php"; require "plugin.php"; var_dump(current_time("mysql"));' 


Fatal error: Call to undefined function wp_cache_get() in functions.php on line 351 

尝试


php -r 'require "functions.php"; require "plugin.php"; require "cache.php"; var_dump(current_time("mysql"));' 


Fatal error: Call to a member function get() on a non-object in cache.php on line 93 

望着源中的最后一个错误我看到


function wp_cache_get($id, $flag = '') { 
    global $wp_object_cache; 

    return $wp_object_cache->get($id, $flag); 
} 

使用全局变量使得测试在其它环境皮塔如果不是不可能的。

如果这不是你想要做的,你必须在你的问题中更具体/详细。