当使用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