PHPUnit SpeedTrap
发布于 作者: Paul Redmond
PHPUnit Speedtrap 是 John Kary 开发的一个软件包,它报告 PHPUnit 测试套件中运行缓慢的测试。这个软件包的灵感来自于 Ruby RSpec 的 --profile
选项,该选项显示有关缓慢测试的反馈。
SpeedTrap 直接在控制台中报告运行缓慢的 PHPUnit 测试。
许多因素会影响测试执行时间。没有正确隔离的测试会受到变量延迟(数据库、网络等)的影响,甚至测试机器上的基本负载也会导致测试执行时间波动。
从 项目的自述文件 中,这里是一个您可以期望看到的示例。
我对深入 PHPUnit 并不十分熟悉,所以我喜欢深入研究软件包的源代码并了解 PHPUnit 监听器的运作方式。在 phpunit.xml 文件中,您可以使用以下 XML 启用此软件包。
<listeners> <listener class="JohnKary\PHPUnit\Listener\SpeedTrapListener" /></listeners>
一个更全面的示例包括用于定义“slowTreshold”和“reportLength”的可定制选项。您可以自定义您的测试套件认为以毫秒为单位定义的“缓慢”测试是什么。
<listeners> <listener class="JohnKary\PHPUnit\Listener\SpeedTrapListener"> <arguments> <array> <element key="slowThreshold"> <integer>500</integer> </element> <element key="reportLength"> <integer>5</integer> </element> </array> </arguments> </listener></listeners>
除了监听器之外,该软件包还演示了如何使用注释在每个测试级别覆盖这些配置选项。
/** * @slowThreshold 5000 */public function testLongRunningProcess(){ // Code that takes a longer time to execute}
您可以在 johnkary/phpunit-speedtrap 中了解有关 PHPUnit Speedtrap 软件包的更多信息,还可以查看这些 加速 PHPUnit 测试的技巧。