我正在使用phpunit对WordPress插件进行TDD。其中一个要求是,如果一个具有预定义名称的分类法(比如“公寓”)已经注册(通过主题或其他插件),插件激活就会失败。
问题是,使用标准的WordPress phpunit测试套件,在WordPress环境启动时,插件会自动激活为“mu插件”。This post 建议手动激活插件,但我们已经尝试过了,但似乎没有效果(WordPress 5.2.1)。事实上,没有任何迹象表明该帖子中的函数做了任何事情。我有一种感觉,这是因为如果插件是mu或已经激活,插件激活代码可能不会运行。
在阅读代码试图找出发生了什么之前,我想知道:
在WordPress插件的上下文中,这是phpunit的正确使用吗如果使用得当,我应该如何设置这样的测试(检查插件激活是否失败)非常感谢您的帮助。
最合适的回答,由SO网友:KAGG Design 整理而成
使用phpunit测试WP插件和主题是绝对正确的,并且得到了广泛的应用。您可以在我们的plugin Cyr2Lat (请查看测试文件夹)您可以在那里找到,这是纯phpunit测试的一个示例,它只与测试类一起工作,并模拟其他所有内容。
基于WP\\U UnitTestCase的测试我们称之为“集成测试”,因为它们加载整个WordPress核心并与数据库一起工作。
您可以通过上述两种方法对插件激活进行测试。使用纯phpunit测试,您可以只检查负责激活的类的行为如果您喜欢使用WP\\u UnitTestCase,那么应该修改引导。php为了防止直接加载插件,挂接“taxonomy\\u registered”以发布帖子,注册您自己的分类法,为插件执行“activate”操作,并检查它是否被激活。这就是我对序列的看法。