附录 D. 升级

从 PHPUnit 3.7 升级到 PHPUnit 4.0

  • 在 PHPUnit 3.5 中引入的对静态方法进行上桩或模拟的有限支持已移除。此功能仅当被上桩或模拟的静态方法是从同一个类其他方法中调用时才能正常工作。我们认为,没有理由为了这个功能的这点有限的用途而在测试替身代码生成器中增加那么多代码复杂度。对这个移除动作我们表示很抱歉,有可能需要重构测试代码以使得不需要此功能来对其进行测试。

  • addRiskyTest() 方法已添加到 PHPUnit_Framework_TestListener 接口。所有实现了本方法的类必须实现此新方法。这正式 PHPStorm 7 与 PHPUnit 4 不兼容的原因。

  • 为了修复 #552#573#582,必须更改 PHPUnit 的 XML 配置文件中对相对路径的解析方式。现在,某个配置文件中所有相对路径都是相对于此配置文件所在路径进行解析的。在升级后,可能需要更新以下配置指令中的相对路径:testSuiteLoaderFileprinterFiletestsuites/filetestsuites/exclude

  • 提供两个字符串(给assertEquals())时不再调用数值比较

请注意,从 PHPUnit 4.0.0 开始,PHPUnit 的 PEAR 包只作为分发 PHP 档案包(PHAR)的一种机制,PHPUnit 的许多依赖项不再单独通过 PEAR 发布。最终,我们将完全停止在 PEAR 发布 PHPUnit。

请注意,如果用 PEAR 安装器来从 PHPUnit 3.7 升级到 PHPUnit 4.0,将导致在 PHP 环境变量所指定的 PEAR 目录中遗留一些 PHPUnit 依赖项(PHP_CodeCoverage、 PHPUnit_MockObject、……)老版本的陈旧源文件。建议卸载对应的 PEAR 包。

如果对本页有改进建议,请 在 GitHub 上开启任务单。万分感谢!