我想繼續在嚴格模式下運行我的單元測試,以便我很容易地知道任何異常長的測試,但同時默認超時1秒不是足夠。我可以更改所有測試嗎?我知道我可以使用@short/@medium/@long
註釋爲每個類(和單個測試)設置超時,但是對於所有測試,是否有類似的情況?也許在phpunit.xml中?PHPUnit嚴格模式 - 如何更改默認超時
這是爲了避免偶爾發生的PHP_Invoker_TimeoutException: Execution aborted after 1 second
。
我想繼續在嚴格模式下運行我的單元測試,以便我很容易地知道任何異常長的測試,但同時默認超時1秒不是足夠。我可以更改所有測試嗎?我知道我可以使用@short/@medium/@long
註釋爲每個類(和單個測試)設置超時,但是對於所有測試,是否有類似的情況?也許在phpunit.xml中?PHPUnit嚴格模式 - 如何更改默認超時
這是爲了避免偶爾發生的PHP_Invoker_TimeoutException: Execution aborted after 1 second
。
該選項可以通過在phpunit.xml中設置想要的時間來啓用。時間在幾秒鐘內。
實施例:
<phpunit
strict="true"
timeoutForSmallTests="1"
timeoutForMediumTests="5"
timeoutForLargeTests="10"
>
// test suites
</phpunit>
測試可以被標記爲通過標記實際測試功能,如以下
/**
* @medium
*/
public function testTestThing() {
$this->assertTrue(false);
}
EDIT中型或大型:modern PHPUnit versions不做這些超時任何更多,並且也改變嚴格模式的行爲通常通過爲每個事物引入單獨的標誌previously covered by strict mode:
beStrictAboutTestsThatDoNotTestAnything="true"
checkForUnintentionallyCoveredCode="true"
beStrictAboutOutputDuringTests="true"
beStrictAboutTestSize="true"
beStrictAboutChangesToGlobalState="true"
無關的警告:它還將XML配置中的測試路徑更改爲相對於XML配置文件,而不是舊的默認路徑將與當前工作目錄相關。
另外,您還可以設置他們在您的設置()方法是這樣的:
$this->getTestResultObject()->setTimeoutForSmallTests(1);
$this->getTestResultObject()->setTimeoutForMediumTests(5);
$this->getTestResultObject()->setTimeoutForLargeTests(10);
可能重複:http://stackoverflow.com/questions/10520464/what-does-phpunit-strict-mode-做 – Smar
我已經看過,但它不回答如何全局更改此設置 - 不編輯PHPUnit源代碼,我想避免。 –
您只能從phpunit.xml執行此操作。就我所知,PHPUnit沒有全局配置文件。 – Smar