當使用PHPUnit進行單元測試時,如果有任何警告出現在代碼中,測試腳本將不會執行該功能,任何人都可以告訴我如何忽略警告並繼續測試忽略PHPUnit中的PHP警告
回答
由於Juhana評論說,您應該首先將您的代碼修復到出現警告的位置。這是一個標誌,代碼不能正常/嚴格地工作。
默認情況下,PHPUnit將在執行測試期間觸發的PHP錯誤,警告和通知轉換爲異常。
請參閱Testing PHP Errors其中有更多信息如何測試您的警告(以及如何忽略您在測試中調用的子例程中的警告)。
要禁用默認行爲,可以告訴PHPUnit在測試中這樣做,例如,
# Warning:
PHPUnit_Framework_Error_Warning::$enabled = FALSE;
# notice, strict:
PHPUnit_Framework_Error_Notice::$enabled = FALSE;
更改默認行爲的另一個選項是configure the testrunner with an XML file具有以下設置:
<phpunit convertErrorsToExceptions="false"
convertNoticesToExceptions="false"
convertWarningsToExceptions="false">
</phpunit>
這些測試的setUp
或通過在全局命名空間中設置一個靜態變量測試本身內三個選項不可用作命令行開關。
查看相關問題:test the return value of a method that triggers an error with PHPUnit。
謝謝你使用「#notice,strict: PHPUnit_Framework_Error_Notice :: $ enabled = FALSE; 」 –
我試圖用vfsStream來測試一些文件操作。禁用PHP_Unit異常無效(因爲某些不支持的chmod()需要)。我必須畢竟使用好的老沉默運算符'@'。 – Zap
在每個測試級別執行此操作的文檔策略是在測試調用會觸發警告或通知的函數時使用@
錯誤抑制運算符。
下面的代碼是從所述PHPUnit documentation例如:
<?php
class ErrorSuppressionTest extends PHPUnit_Framework_TestCase
{
public function testFileWriting() {
$writer = new FileWriter;
$this->assertFalse(@$writer->write('/is-not-writeable/file', 'stuff'));
}
}
class FileWriter
{
public function write($file, $content) {
$file = fopen($file, 'w');
if($file == false) {
return false;
}
// ...
}
}
- 1. 忽略PHP警告
- 2. 忽略Django中的警告
- 3. 忽略python警告
- 4. 忽略楠警告
- 5. 忽略#pragma的警告
- 6. 忽略警告並進行
- 7. 忽略RStudio IDE中的特定警告
- 8. 忽略Xcode 6中的警告
- 9. 如何在PHPUnit中捕獲PHP警告
- 10. Xcode中忽略故事板警告
- 11. 讓phpunit忽略include?
- 12. 忽略特定的警告6
- 13. 忽略警告的危害是什麼?
- 14. 如何忽略使用GCJ的警告
- 15. gcc:警告:忽略'used'屬性
- 16. 如何用jshint忽略所有警告?
- 17. 抑制Xcode警告? 「weak_import」屬性忽略
- 18. Akephalos:如何忽略SSL警告?
- 19. 使用PHP_CodeSniffer忽略特定警告
- 20. 警告:忽略Android API工件com.google.android:roid:4.1.1.4
- 21. NSURLSession - 忽略SSL證書警告
- 22. 配置Checkstyle以忽略一般警告
- 23. 混帳SVN挑櫻桃忽略警告
- 24. ld:警告:-no_pie爲arm64忽略
- 25. Android警告 - 忽略InnerClasses屬性(jnamed)
- 26. 警告: 'regparm' 屬性指令忽略
- 27. tryCatch()顯然忽略了一個警告
- 28. JSHint with Atom編輯器 - 忽略警告
- 29. 使用Cocoapods時忽略Xcode警告
- 30. 如何忽略一些rails_best_practices gem警告?
在我看來,單元測試工作,它應。修復代碼,使其不會引發警告或錯誤。 – JJJ
@Juhana:我只需要返回與警告無關的函數的值。正在測試的函數工作正常。 –
在團隊工作環境中,您有時必須測試自己的軟件包,而且您沒有時間/憑據/任務來清理其他軟件包(可能會因爲它們甚至未被調用而存在警告),因此「修復代碼「評論似乎不相關,當你只是想測試一個特定的功能。 – Xmanoux