php - 如何使用 XML 文件设置 phpunit 的工作目录?
问题描述
我正在查看文档,但没有看到任何更改运行测试时使用的工作目录的选项。
我正在使用 PhpUnit,因为它包含在 Laravel 中。我希望能够vendor/bin/phpunit
从我的项目的根目录运行,并使用该/public
目录作为工作目录运行它。
我尝试../vendor/bin/phpunit
从.xml 运行/public
,但由于 phpunit.xml 文件不在公共目录中,并且我不想每次都指定我的配置文件路径,这将不起作用。
有什么我可以添加到我的phpunit.xml
文件中来告诉它使用该/public
目录作为“cwd”(当前工作目录)运行测试的吗?
解决方案
根据我在评论和文档中收到的反馈,我确定了以下内容:
- 可能无法更改
cwd
phpunit 默认使用的值(嗯,在 PhpStorm 中是可能的,但在不编写某种包装脚本的情况下不能在命令行中更改) - 依赖于从特定目录运行的代码不是一个好主意。
我所拥有的是我的一个类中的一些代码,如下所示:
$var = file_get_contents("../some_file.json");
这很好用——直到您尝试添加单元测试。Web 服务器使用该/public
目录运行cwd
,而 phpunit 将使用根目录运行。
与其试图强制 phpunit 始终使用特定的cwd
( /public
),我认为最好从依赖于一致的cwd
. 所以上面的行变成:
$var = file_get_contents(base_path("some_file.json"));
我不想更改已经在工作的生产代码,只是为了进行一些测试,但是这种更改似乎微不足道。(无论如何这是一个改进)
推荐阅读
- opengl - 如何避免在片段着色器中写入颜色附件
- javascript - 通过 onclick .js更改
- reactjs - DetailsList - Office UI Fabric - 如何在单击该行的按钮时突出显示该行?
- timer - 让进度条在我指定的时间段内运行
- paypal - Paypal 直接付款 API 参数
- asp.net - Server.Execute() 调用asp文件后再次执行点击处理程序
- javascript - 减少数组js中的条件
- css - 如何从任何页面 CSS Ionic 4 更改菜单背景
- flutter - 如何在颤动的列表中选择一个复选框
- java - 对象相等/哈希码与 JPA/Hibernate 实体相等/哈希码