使用Composer和autoload.php在PHPUnit中自动加载类

使用Composer和autoload.php在PHPUnit中自动加载类,第1张

使用Composer和autoload.php在PHPUnit中自动加载类

好吧,一开始。您需要告诉自动加载器在哪里可以找到类的php文件。这是通过遵循PSR-0标准来完成的。

最好的方法是使用名称空间。

Acme/Tests/ReturningTest.php
当您要求
AcmeTestsReturningTest
上课时,自动装带器将搜索文件。有一些很棒的名称空间教程,只是搜索和阅读。请注意,namespacing
并不是 PHP可以自动加载的东西,而是可以用于自动加载的东西。

Composer带有标准的PSR-0自动装带器(中的一个

vendor/autoload.php
)。对于您的情况,您想告诉自动装带器在
lib
目录中搜索文件。然后,当您使用
ReturningTest
它会寻找
/lib/ReturningTest.php

将此添加到您的

composer.json

{    ...    "autoload": {        "psr-0": { "": "lib/" }    }}

文档中有更多信息。

现在,自动加载器可以找到您需要的类,让PHPunit知道在运行测试之前要执行的文件:引导文件。您可以使用该

--bootstrap
选项指定引导文件的位置:

$ ./vendor/bin/phpunit tests --bootstrap vendor/autoload.php

但是,最好使用PHPunit配置文件:

<!-- /phpunit.xml.dist --><?xml version="1.0" encoding="utf-8" ?><phpunit bootstrap="./vendor/autoload.php">    <testsuites>        <testsuite name="The project's test suite"> <directory>./tests</directory>        </testsuite>    </testsuites></phpunit>

现在,您可以运行命令,它将自动检测配置文件:

$ ./vendor/bin/phpunit

如果将配置文件放入另一个目录,则需要在带有

-c
选项的命令中将该目录的路径放入。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5602489.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存