php系统单元测试与集成测试,使用PHPUnit进行单元和功能测试的文件系统/目录布局...

我需要在我的测试套件中添加集成测试.虽然名称是PHPUnit,但我发现在这里运行非单元测试有很多支持.我的布局是这样的:

lib/

Foo/

Component.php

tests/

lib/

Foo/

ComponentTest.php

resources/

fixtures/

(我认为)有三种方法可以在这里添加高于单位水平的测试:

添加并行结构

tests/

unit/

lib/

Foo/

ComponentTest.php

integration/

lib/

Foo/

ComponentTest.php

resources/

fixtures/

这应该有效,除非现在没有1:1类:测试类关系可能(并且可能会)混淆Netbeans.

添加< root> /tests/lib/Foo/ComponentIntegrationTest.php

与上面相同的问题,目录较少.

将测试添加到现有测试类,使用@group integration等符号

这保持了1:1的关系,但却增加了测试套件的复杂性.此外,由于需要在不断变化的环境中调用SUT,我不能只重用单元测试中的_setup().

想法?

解决方法:

单元测试用于单独测试单个单元(类).集成测试旨在将多个单元一起测试.因此,类和它们所属的集成测试之间可能不会有1:1的相关性.

我将创建一个单独的目录结构 – 甚至可能是一个单独的项目 – 来容纳集成测试. NetBeans将无法打开类所属的“测试”,因为它将属于多个测试,但它将继续打开其匹配的单元测试.

我们使用Selenium为我们的集成测试(在我到达之前称为健全性测试)有一个单独的项目,到目前为止它运行良好.

更新

我们的集成测试的目录布局非常简单:每个站点一个目录.我们为站点提供了一个代码库,并使用视图来允许单个站点覆盖布局(不仅仅是换肤).我们没有像我想的那样在这些测试上花费太多时间.我们使用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/

标签:php,layout,phpunit,integration

来源: https://codeday.me/bug/20190518/1126901.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值