【问题标题】:How to separate Unit and Functional Tests in Symfony2?如何在 Symfony2 中分离单元测试和功能测试?
【发布时间】:2013-12-20 09:00:34
【问题描述】:

我想知道:

  1. 如果分开测试是个好主意(单位 | 函数式 ...) 在 Symfony2 中,
  2. 以及我应该如何分开:

按文件夹结构:

tests 
|-- functional    
|-- unit

通过 phpunit.xml 中的配置:

<testsuites>
    <testsuite name="unit">...</testsuite>
    <testsuite name="functional">...</testsuite>
</testsuites>

通过注释

/**
 * @group unit    
 */
 function testMyUnit()

它是一种合理的方法吗?有没有标准的方法来做到这一点?什么“级别”分开(单元>集成>功能)?如果我想手动快速地使用这些测试,并在 Jenkins 中获得合理的覆盖率报告,如何利用这一点?

【问题讨论】:

  • 将功能测试放入包的 Controller 文件夹的标准方法有什么问题?
  • 将集成测试(例如使用内核或容器)或“功能代码”放在控制器之外的位置?

标签: unit-testing symfony tdd


【解决方案1】:

您可以使用两个配置文件 - 一个用于功能测试,一个用于单元测试。然后,您可以将单元测试与功能分开运行。您希望您的单元测试尽可能快地运行,否则在开发时没有人会运行它们,所以这种方法非常有效。

phpunit -c app/phpunit.xml
phpunit -c app/phpunit_functional.xml

我们使用的目录结构:

src/Namespace/Bundle/Tests/Unit/
src/Namespace/Bundle/Tests/Functional/

第二种方法是拥有一个配置文件并运行phpunit --testsuite unit。

【讨论】:

  • 这是如何跨多个捆绑包工作的?每次添加/删除捆绑包时都必须更新全局 phpunit 文件吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-11-15
  • 1970-01-01
  • 1970-01-01
  • 2016-01-23
  • 2016-10-03
  • 2014-09-30
  • 2011-12-11
相关资源
最近更新 更多