【发布时间】:2016-12-24 00:00:03
【问题描述】:
我正在使用PHPUnit 进行一些相当复杂的单元测试。在这些测试中,一些文件正在临时目录中生成。测试完成后,这一切都被抹去。有没有办法让框架保持生成的内容不受影响?
【问题讨论】:
-
你能发布你的生成和清除文件的代码吗?
标签: php unit-testing phpunit
我正在使用PHPUnit 进行一些相当复杂的单元测试。在这些测试中,一些文件正在临时目录中生成。测试完成后,这一切都被抹去。有没有办法让框架保持生成的内容不受影响?
【问题讨论】:
标签: php unit-testing phpunit
有两种方法可以实现这一目标。在不知道究竟是什么清除了这些文件的情况下,我最好的办法是子类化 PHPUnit\Framework\TestCase 并在那里实现 tearDown or tearDownAfterClass(并让相关的测试用例子类化),或者在引导脚本中使用 register_shutdown_function。
tearDown/shutdown 方法可以简单地将临时目录和 mkdir 重命名为新目录,这样就无需清除任何内容,但最好还是不要一开始就清除这些文件。如果该代码位于您的 vendor/ 目录中,则为 still possible to modify those files。
【讨论】: