【发布时间】:2017-07-11 01:45:31
【问题描述】:
我使用 PHP 5.6 创建了一个简单的 PHP 库。 它包括 PHPUnit 测试用例,我成功地创建了包。 然后我发现我可以直接从 GitHub 安装这些包,使用 composer,也可以在其他项目中。我可以在开发阶段独立运行测试。但是一旦我发布了包,我就无法运行测试,因为它没有正确找到自动加载器文件。
<?xml version="1.0" encoding="UTF-8"?>
<phpunit bootstrap="vendor/autoload.php"
colors="true"
processIsolation="false"
stopOnFailure="false"
syntaxCheck="false"
convertErrorsToExceptions="true"
convertNoticesToExceptions="true"
convertWarningsToExceptions="true"
testSuiteLoaderClass="PHPUnit_Runner_StandardTestSuiteLoader">
<testsuites>
<testsuite>
<directory>tests</directory>
</testsuite>
</testsuites>
我已经在根目录中添加了 xml 文件。独立时自动加载文件的路径是正确的。但是安装后目录结构会有所不同。
如果我们使用require_once自动加载文件,问题仍然存在,因为安装后目录结构发生了变化。
问题:
- 我们可以在将包安装到任何框架(laravel/Symfony)或任何其他项目后对其进行测试吗?
- 最佳做法是什么?使用该软件包的开发人员是否需要进行测试?
- 如果是,那么有什么解决方案可以解决这个问题吗?有没有其他方法可以在两种环境中自动加载问题?
【问题讨论】:
标签: php phpunit composer-php autoload