如何使用phpunit测试插件激活?

时间:2019-06-20 作者:Ted Stresen-Reuter

我正在使用phpunit对WordPress插件进行TDD。其中一个要求是,如果一个具有预定义名称的分类法(比如“公寓”)已经注册(通过主题或其他插件),插件激活就会失败。

问题是,使用标准的WordPress phpunit测试套件,在WordPress环境启动时,插件会自动激活为“mu插件”。This post 建议手动激活插件,但我们已经尝试过了,但似乎没有效果(WordPress 5.2.1)。事实上,没有任何迹象表明该帖子中的函数做了任何事情。我有一种感觉,这是因为如果插件是mu或已经激活,插件激活代码可能不会运行。

在阅读代码试图找出发生了什么之前,我想知道:

在WordPress插件的上下文中,这是phpunit的正确使用吗

1 个回复
最合适的回答,由SO网友:KAGG Design 整理而成

使用phpunit测试WP插件和主题是绝对正确的,并且得到了广泛的应用。您可以在我们的plugin Cyr2Lat (请查看测试文件夹)您可以在那里找到,这是纯phpunit测试的一个示例,它只与测试类一起工作,并模拟其他所有内容。

基于WP\\U UnitTestCase的测试我们称之为“集成测试”,因为它们加载整个WordPress核心并与数据库一起工作。

您可以通过上述两种方法对插件激活进行测试。使用纯phpunit测试,您可以只检查负责激活的类的行为如果您喜欢使用WP\\u UnitTestCase,那么应该修改引导。php为了防止直接加载插件,挂接“taxonomy\\u registered”以发布帖子,注册您自己的分类法,为插件执行“activate”操作,并检查它是否被激活。这就是我对序列的看法。

相关推荐

Testing Plugins for Multisite

我最近发布了一个WordPress插件,它在单个站点上非常有效。我被告知该插件在多站点安装上不能正常工作,我理解其中的一些原因。我已经更新了代码,现在需要一种方法来测试更新后的代码,然后才能转到实时客户的多站点安装。我有一个用于测试的WordPress安装程序的单站点安装,但需要在多站点安装上进行测试。根据我所能找到的唯一方法是在网络上至少有两个站点来安装整个多站点安装,以测试我的插件。设置WordPress的整个多站点安装是插件开发人员的唯一/首选方式,还是有更快的测试环境可用。