我正在查看文档,但是我没有看到任何更改运行测试时使用的工作目录选项。
我使用PhpUnit,因为它包含在Laravel中。我想能够从我的项目根目录运行
我尝试从
是否可以向我的
我使用PhpUnit,因为它包含在Laravel中。我想能够从我的项目根目录运行
vendor/bin/phpunit
,并使用/public
目录作为工作目录运行。我尝试从
/public
运行../vendor/bin/phpunit
,但由于phpunit.xml文件不在公共目录中,而且我不想每次都指定配置文件路径,所以这样做行不通。是否可以向我的
phpunit.xml
文件添加一些内容,告诉它使用/public
目录作为“cwd”(当前工作目录)来运行测试?
/public
作为当前工作目录,我的测试就无效了,因为Laravel通常将public目录作为当前工作目录。(相对路径文件会出错)我知道使用Laravel的函数来获取应用程序根目录而不是使用相对路径可以解决这个问题...但是为了获得准确的结果,我应该使用与生产环境中使用的相同的当前工作目录。 - Skeetspublic
不是 Laravel 的当前工作目录,而是服务器的 "DocumentRoot",即(web)应用程序的服务位置。您无法访问public
中的任何类/命令。也许您需要重写您的测试? - brombeerweb.php
文件顶部放置dd(getcwd())
,浏览器将显示公共目录是当前工作目录。从phpunit运行相同的web.php文件会产生不同的结果。也许我理解错了,但我认为phpunit的至少一个目标是复现在生产环境中发生的相同条件。我正试图为网页创建测试,而不是控制台命令。所以当前工作目录应该是public
,以匹配代码在生产环境中运行时的情况。 - Skeets