Magento中的单元测试工具


23

您在Magento中使用什么进行单元测试?或者您对单元测试和Magento了解多少?无论您是执行TDD还是只想对项目组件进行单元测试,都需要一些工具来执行此操作。

第一种基本方法是使用简单的phpunit,但是有些事情需要附加的头才能使Magento“可测试”。

我使用的所有内容都与phpunit相关:

还有其他选择吗?

Answers:


14

如果您想要的不是基于PHPUnit的东西,而是带有一些Magento集成的东西,请查看带有MageSpec的PHPSpec。它是可用的,但还不是为黄金时间准备的。为了进行模拟,PHPSpec 2使用了Prophecy(这很不错),但是根本不喜欢使用getter和setter方法。因此,最好改用Mockery,它可以正常工作(我也很喜欢)。

然后还有带有BehatMage的Behat和带有Magento的BDD。值得一看,但是例如,如果您要在不同的域上测试不同的商店视图,则失败。

BehatMage还有一个扩展名为MageBehat(糟糕的命名!),它来自黑客马拉松。它为BehatMage提供了许多Magento特定的操作,但是说实话,使用的一些解决方法更多的是针对底层问题的破解,而不是真正的解决方案。仍然可以使用。

我希望将来看到两个项目-MageSpec和BehatMage蓬勃发展。


感谢Vinai的回复。我了解BehatMage以及Inviqa / Session Digital团队的工作(我不清楚他们的公司结构)...我只是在寻找phpunit的东西,Behat / BehatMage对我来说并不那么吸引人,我确实玩过MageSpec不久前。
FlorinelChis

英语不是我的母语,我提供的详细信息可能更清楚。我正在为伦敦Magento用户组-12月的聚会做一些研究。
FlorinelChis


3

您应该使用EcomDev PHPUnit

我个人认为,所有Magento开发人员都应努力寻求一致的单元测试解决方案。EcomDev提供了这些框架中最常用和最成熟的框架,因此您已经拥有一批有丰富经验的开发人员。使用单个框架还减少了安装数十亿个不同框架的需求。

但是,EcomDev PHPUnit确实有将测试直接与生产代码放在一起的这种奇怪约定。幸运的是,这可以通过修改几行代码来轻松解决。EcomDev还通过更新来度过美好的时光(尽管他们的Github存储库显示活动迹象,因此它们显然还活着)。


那么,说了这么多,是否有一个仓库中有一组定义的单元测试(使用ecomdev_unittest)来测试核心功能?(我知道MTAF会这样做,但是在某处有预定义的单元测试吗?)
ProxiBlue

1
@ProxiBlue不,我没有发现任何东西。但是,对于社区项目来说,这是一个很好的主意。
Thai Phan

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.