Risky Tests
Risky Tests
PHPUnit 在执行测试时可以执行下面记录的额外检查。
无用的测试
对于不测试任何东西的测试,PHPUnit 可能是严格的。可以通过使用--report-useless-tests
命令行上的选项或通过设置beStrictAboutTestsThatDoNotTestAnything="true"
PHPUnit 的 XML 配置文件来启用此检查。
启用此检查时,不执行断言的测试将被标记为有风险。对模拟对象或注释的期望,如@expectedException
计数作为断言。
无意涵盖的代码
PHPUnit 可以严格限制无意覆盖的代码。可以通过使用--strict-coverage
命令行上的选项或通过设置checkForUnintentionallyCoveredCode="true"
PHPUnit 的 XML 配置文件来启用此检查。
被注释与测试@covers
,并执行未使用上市代码@covers
或@uses
启用此检查时,注释将被标记为有风险的。
测试执行期间的输出
在测试期间,PHPUnit 可能对输出严格。可以通过使用--disallow-test-output
命令行上的选项或通过设置beStrictAboutOutputDuringTests="true"
PHPUnit 的 XML 配置文件来启用此检查。
发出输出的测试(例如通过print
在测试代码或测试代码中调用)将在启用此项检查时被标记为有风险。
测试执行超时
如果PHP_Invoker
软件包已安装且pcntl
扩展可用,则可以执行时间限制以执行测试。通过使用--enforce-time-limit
命令行上的选项或通过beStrictAboutTestSize="true"
在 PHPUnit 的 XML 配置文件中进行设置,可以启用强制执行此时间限制。
@large
如果执行时间超过60秒,则用附注标记的测试将失败。该超时可通过timeoutForLargeTests
XML 配置文件中的属性进行配置。
@medium
如果执行时间超过10秒,则用附注标记的测试将失败。该超时可通过timeoutForMediumTests
XML 配置文件中的属性进行配置。
没有注释@medium
或@large
将被视为注释的测试@small
。如果执行时间超过1秒,小测试将失败。该超时可通过timeoutForSmallTests
XML 配置文件中的属性进行配置。
全局状态操纵
PHPUnit 可以严格控制操纵全局状态的测试。可以通过使用--strict-global-state
命令行上的选项或通过设置beStrictAboutChangesToGlobalState="true"
PHPUnit 的 XML 配置文件来启用此检查。