我已经编写了一个包,作为开发过程的一部分,我想对其运行单元测试。这基本上意味着我需要一个引导文件来为我的包注册自动加载器。
我看到的任何包都没有特定的引导文件,因此我不太了解开发人员如何测试他们自己的包。
这是我的目录结构
src
.CompanyName
..PackageName
...Class 1
...Class 2
tests
.Class1Test
.Class2Test
composer.json
phpunit.xml.dist
现在如果我跑phpunit
在根目录中,我所有的测试都说\\CompanyName\\PackageName\\Class1
没有找到。这是合法的,因为没有人将它们包括在内。所以问题是——我如何以及何时包含我的课程.
看着一个随机套餐我可以看到他们依赖vendor/autoload.php
,但我没有这个供应商目录。我应该跑吗composer install
创建它?
嗯,我已经找到答案了。
Composer 提供了我可以使用的它自己的自动加载器。
- Run
composer install
or composer update
在项目根目录中。这将创建vendor
作曲家目录autoload.php
file.
- Add
vendor
dir to .gitignore
随着composer.lock
- In
phpunit.xml.dist
指定作曲家的自动加载器作为引导文件
Example phpunit.xml.dist
file
<?xml version="1.0" encoding="UTF-8"?>
<phpunit backupGlobals="false"
backupStaticAttributes="false"
bootstrap="vendor/autoload.php"
colors="true"
convertErrorsToExceptions="true"
convertNoticesToExceptions="true"
convertWarningsToExceptions="true"
processIsolation="false"
stopOnFailure="false"
syntaxCheck="false"
>
<testsuites>
<testsuite name="Your package's test suit">
<directory>./tests/</directory>
</testsuite>
</testsuites>
</phpunit>
请注意那里的引导程序条目。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)