输出函数的名称?
我有80左右的phpunit测试,有没有可能,当一个函数被调用时,我可以如何输出每个测试的函数名称?我知道我可以手动做到这一点,但我希望可能会有一个钩子,每个函数调用都可以帮助我(或类似的东西)。输出函数的名称?
编辑:每台测试方法
简介:
对于您将使用__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。
实际上,您的测试用例的方法名称可以通过getName()
方法检索。它接受一个可选参数来检索测试方法的当前数据输入。
你可以找到PHPUnit文档的这一部分例如其用法: http://www.phpunit.de/manual/current/en/extending-phpunit.html#extending-phpunit.PHPUnit_Framework_TestListener
呼叫良好。我已经忘记了那个。一直在研究未经测试的遗留代码太久了! – Treffynnon 2011-04-01 19:08:07
- 如果你想显示通过测试每次调用函数的名称,答案是没有,是没有办法。除了在这些函数中添加代码之外,正如其他答案中所述。
PHP没有提供在调用任何函数之前调用“钩子”的方法。
- 如果你想显示每个测试功能的名称(在您的测试类)时,它就是所谓的,那是另一回事。
首先,你可以将参数添加到您的PHPUnit的电话:
phpunit --verbose tests/
phpunit --testdox tests/
或者,如果这还不够,你可以使用setUp()功能,即之前执行的每个试验,目前显示测试正在运行。
我也喜欢你的想法。在'setUp()'方法中做它是一个不错的选择。 – Treffynnon 2011-04-01 19:54:03
可以设置什么变量/方法?这是一个更好的方法,但我不知道如何去做。 – tipu 2011-04-01 20:13:00
@tipu - 您可以使用'$ this-> getName()',但我想知道为什么在运行PHPUnit时不会只使用'--verbose'或'--debug'标志。在'setUp()'中执行任何输出可能会导致调用PHPUnit的工具(如IDE或构建服务器)出现问题。只有在需要查看测试方法名称时才更好地使用命令行标志。 – 2011-04-01 20:47:58
每个testER函数(方法)或testED函数? – 2011-04-01 18:56:55