我有80左右的phpunit测试,有可能在调用函数时,我可以为每个测试输出函数名吗?我知道我可以手动执行它,但我希望可能有一个钩子可以调用每个函数调用,这可以帮助我(或类似的东西)。
编辑:每个测试人员方法
答案 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