我已经写了一个包,作为开发过程的一部分,我想对它进行单元测试。这基本上意味着我需要一个bootstrap文件来为我的包注册自动加载器。
我看到的任何软件包都没有特定的bootstrap文件,因此我不太了解开发人员如何测试自己的软件包。
这是我的目录结构
src
.CompanyName
..PackageName
...Class 1
...Class 2
tests
.Class1Test
.Class2Test
composer.json
phpunit.xml.dist
现在如果我在根目录中运行phpunit
,我的所有测试都说找不到\\CompanyName\\PackageName\\Class1
。哪个是精英,因为没有人包括它们。所以问题是 - 如何以及何时包含我的课程。
查看random packages我可以看到他们依赖vendor/autoload.php
,但我没有这个供应商目录。我应该运行composer install
来创建吗?
答案 0 :(得分:5)
好吧,我已经找到了答案 Composer提供了我自己可以使用的自动加载器。
composer install
或composer update
。这将使用作曲家vendor
文件创建autoload.php
目录。vendor
目录添加到.gitignore
以及composer.lock
phpunit.xml.dist
中指定composer的自动加载器作为引导程序文件示例phpunit.xml.dist
文件
<?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>
注意那里的bootstrap条目。
答案 1 :(得分:0)
是的,您应该运行composer update
。这样做是没有害处的,因为所有内容都放入/ vendor /中,以后可以删除。