输出调用的函数名称?

时间:2011-04-01 18:54:12

标签: php phpunit

我有80左右的phpunit测试,有可能在调用函数时,我可以为每个测试输出函数名吗?我知道我可以手动执行它,但我希望可能有一个钩子可以调用每个函数调用,这可以帮助我(或类似的东西)。

编辑:每个测试人员方法

3 个答案:

答案 0 :(得分:2)

<强>说明:

对于使用__FUNCTION__(链接)的函数,对于类方法,您可以使用__METHOD__(链接)。

<强>功能:

function my_function() {
    echo __FUNCTION__;
}

输出为my_function;

课程方法:

class Treffynnon {
    public function my_method() {
        echo __METHOD__;
    }
}

输出为my_method;

显示调用的函数:

function my_function($param1, $param2, $param3) {
    $args = func_get_args();
    echo __FUNCTION__ . '(' . implode(', ', $args) . ')';
}
my_function('blah', 'blah', 'blah');

输出为my_function(blah, blah, blah);。显然,这可以极大地改进,以更准确地表示参数的传递方式(即引用输出的参数)。

有关详细信息,请参阅func_get_args() man page

答案 1 :(得分:2)

  • 如果您想显示测试调用的每个函数的名称,答案是不,没有办法。当然,除了在这些函数中添加代码之外,如其他答案中所述。

PHP没有提供在调用任何函数之前调用“hook”的方法。

  • 如果要在调用时显示每个测试函数的名称(在测试类中),那么这是另一回事。

首先,您可以为phpunit调用添加参数:

phpunit --verbose tests/
phpunit --testdox tests/

或者,如果这还不够,您可以使用在每次测试之前执行的setUp()功能来显示当前正在运行的测试。

答案 2 :(得分:1)

实际上,您可以通过getName()方法检索测试用例的方法名称。它接受一个可选参数,用于检索测试方法的当前数据输入。

您可以在PHPUnit文档的这一部分中找到它的用法示例: http://www.phpunit.de/manual/current/en/extending-phpunit.html#extending-phpunit.PHPUnit_Framework_TestListener