【发布时间】:2013-07-11 09:11:30
【问题描述】:
我一直在关注ZF2 tutorials,了解我在编写应用程序时在哪里/如何为模块编写单元测试。现在每个模块都有自己的test 目录和自己的Bootstrap.php 和phpunit.xml 配置文件。
当前应用程序外壳
Application
+--config/
+--public/
+--module/
| +--Module-A
| | +--config
| | +--src
| | +--tests
| | +--view
| +--Module-B
| +--config
| +--src
| +--tests
| +--view
+--vendor/
我遇到的问题是 - 为我的整个应用程序一次运行所有测试非常困难。我必须单独运行每个模块的测试——这使我的 Jenkins CI 设置更加复杂,即:聚合代码覆盖率文件、junit、三叶草等......
建议的应用程序外壳
Application
+--config/
+--public/
+--module/
| +--Module-A
| | +--config
| | +--src
| | +--view
| +--Module-B
| +--config
| +--src
| +--view
+--vendor/
+--tests/
+--Module-A
+--Module-B
所以在我寻找解决方案的过程中,我注意到Zend github repo 仍然有一个单独的tests 目录,看起来可以镜像库模块。遵循这种模式,我可以运行所有测试并一起收集指标,这将使我的生活更轻松。
所以我真正的问题是......
我应该这样做的正确方法是什么?如果我正在编写将要发布的第 3 方插件 - 我应该将测试包含在模块目录中吗?如果我正在编写将与此应用程序一起用于自定义逻辑的插件,我应该/可以创建一个根文件夹并镜像我的模块目录并将测试保存在那里吗?
或者我是在努力地做这一切吗?
【问题讨论】:
-
每个模块都应该作为一个单独的单元进行测试,有些模块有自己的测试:)
-
您如何在 CI 环境中执行此操作,即:jenkins,运行所有测试,然后将所有结果、指标、代码覆盖率 html 聚合成一种可读格式供 CI 服务器呈现?
标签: unit-testing jenkins phpunit zend-framework2