我需要将集成测试添加到我的测试套件中。虽然名称是 PHPUnit,但我发现这里对运行非单元测试有很多支持。我的布局是这样的:
<root>
lib/
Foo/
Component.php
tests/
lib/
Foo/
ComponentTest.php
resources/
fixtures/
(据我所知)有三种方法可以在这里添加高于单元级别的测试:
添加并行结构
<root>
tests/
unit/
lib/
Foo/
ComponentTest.php
integration/
lib/
Foo/
ComponentTest.php
resources/
fixtures/
这应该可行,但现在不存在 1:1 类:测试类关系,这可能(并且可能会)使 Netbeans 感到困惑。
Adding <root>/tests/lib/Foo/ComponentIntegrationTest.php
与上面有同样的问题,目录较少。
将测试添加到现有的测试类中,使用类似的符号@group integration
这保持了 1:1 关系,但显着增加了测试套件的复杂性。另外,由于需要在不断变化的环境中调用 SUT,我不能只重用单元测试中的 _setup() 。
Ideas?
单元测试用于单独测试单个单元(类)。集成测试旨在一起测试多个单元。因此,类和它们所属的集成测试之间可能不会有 1:1 的相关性。
我将创建一个单独的目录结构(甚至可能是一个单独的项目)来容纳集成测试。 NetBeans 将无法打开某个类所属的“测试”,因为它属于多个测试,但它will继续开启其匹配的单元测试。
我们有一个单独的项目,使用 Selenium 进行集成测试(在我到达之前称为健全性测试),到目前为止它运行得很好。
Update
我们集成测试的目录布局非常简单:每个站点一个目录。我们的网站有一个单一的代码库,并使用视图来允许单个网站覆盖布局(不仅仅是皮肤)。我们在这些测试上花费的时间没有我想要的那么多。在将站点推送到临时服务器后,我们使用 Selenium 来运行测试。我还没有机会将它们连接到我们的持续集成服务器(Jenkins),但这将是理想的选择。
我建议您按网站上的功能区域或模块来组织它们。大多数情况下,这取决于您如何看待您正在测试的项目。一个例子可能如下所示:
src/
Model/
Cart.php
...
tests/
unit/
phpunit.xml
bootstrap.php
Model/
CartTest.php
...
integration/
account/
login/
register/
subscriptions/
products/
listing/
details/
search/
cart/
shop/
checkout/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)