我有80左右的phpunit測試,有沒有可能,當一個函數被調用時,我可以如何輸出每個測試的函數名稱?我知道我可以手動做到這一點,但我希望可能會有一個鉤子,每個函數調用都可以幫助我(或類似的東西)。輸出函數的名稱?
編輯:每臺測試方法
我有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