PHPUnit插件集成测试:将WordPress-Tests-lib PHP放入IDE(VS代码)

时间:2021-06-29 作者:jerclarke

因此,我按照指示获得了;插件集成测试;使用设置wp-cli 以及install-wp-tests.sh 手册文章中描述的脚本:

https://make.wordpress.org/cli/handbook/misc/plugin-unit-tests/

在经历了无数的麻烦和调试之后,我甚至运行了一个示例测试,耶!这是可能的!不要放弃!

My issue: The custom PHPUnit extensions for WP aren\'t picked up by my IDE.

/wordpress-tests-lib/ 目录在我的Mac电脑的内部深处install-wp-tests.sh 将其与WP的重影副本一起安装,当我使用phpunit 终端中的命令,因为bootstrap.php 包括它,但由于测试库不在我的WP目录或插件附近,VS代码(可能还有任何其他IDE)无法识别它,我的测试结果如下所示:

screenshot of my code with red squiggles indicating undefined classes and methods

我不能使用自动完成或导航到源代码和所有这些好东西。

I can\'t be the only one with this problem! How do you deal with this?

我将在下面发布我的janky解决方案,但我很想听听其他人是如何为自己实现这一点的:)

1 个回复
SO网友:jerclarke

我找到的最好的解决方案是从插件目录到插件的实际位置建立一个符号链接/wordpress-tests-lib/.

至少在VS代码的情况下,符号链接似乎对其有所帮助;查找(&Q);文件,并将其纳入自动完成等。我仍然有错误,但这是我能做的最好的。

查找临时目录可能有一种更聪明的方法,但我在运行时只需将其回显到终端即可找到我的测试目录phpunit.

编辑bootstrap.php 插件中的文件,如下所示:

add echo "$_tests_dir" after the variable is set up

然后运行phpunit 并复制您的路径URL。我的(mac)是

/var/folders/sn/y4jh01gs67xbbdh2v7zy_86w0000gn/T/wordpress-tests-lib
将符号链接添加到插件目录

在终端中打开插件,并使用以下命令添加链接:

ln -s /PATH/ _wordpress-tests-lib

如果需要,可以使用不同的链接字符串,这应该无关紧要。

下面是我实际执行的命令:

ln -s /var/folders/sn/y4jh01gs67xbbdh2v7zy_86w0000gn/T/wordpress-tests-lib/ _wordpress-tests-lib

在此之后,我重新启动IDE以确保它重新扫描目录,并且该类不再被标记为未定义。

将符号链接添加到.gitignore

对于奖励积分,您可以阻止符号链接显示在Git中,这可能是您想要的,因为它将指向特定于系统的目录。

只需添加_wordpress-tests-lib 在您的.gitignore 归档并提交更改。