我正在为Laravel 5开发一个软件包,我的PHPUnit测试失败了,错误
“未找到类VendorName \ PackageName \ MyPackage”
我仍然无法弄清楚导致此错误的原因,如果有人协助,我会很高兴。
这就是我的结构:
src/
├─ MyPackage.php
test/
├─ MyPackageTest.php
composer.json
composer.lock
Composer.json
"psr-4": {
"VendorName\\PackageName\\": "src/"
},
"autoload-dev": {
"psr-4": {
"VendorName\\PackageName\\Test\\": "tests/"
}
},
这可能是我的错误来自:
MyPackageTest.php
namespace VendorName\PackageName\Test;
use PHPUnit\Framework\TestCase;
use VendorName\PackageName\MyPackage;
class MyPackageTest extends TestCase
{
protected $app;
public function setUp()
{
$this->app = new MyPackage();
}
}
这是我的phpunit.xml文件
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.5/phpunit.xsd"
backupGlobals="false"
backupStaticAttributes="false"
bootstrap="vendor/autoload.php"
colors="true"
convertErrorsToExceptions="true"
covertNoticesToExceptions="true"
convertWarningsToExceptions="true"
processIsolation="false"
stopOnFailure="false"
syntaxCheck="false"
>
<testsuites>
<testsuite name="Interswitch Test Suite">
<directory suffix=".php">./tests/</directory>
</testsuite>
</testsuites>
</phpunit>
我已经完成了通常的composer dump-autoload
仪式,以使其正常工作,但一切都无济于事。
我还使用上面的内容更改了Laravel项目根目录中的composer.json
文件,但我仍然无法使其工作。
答案 0 :(得分:0)
无法重现。使用以下composer.json非常适合我:
{
"require": {
"phpunit/phpunit": "^5.5"
},
"autoload" : {
"psr-4": {
"VendorName\\PackageName\\": "src/"
}
}
}
和phpunit.xml:
<phpunit
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.5/phpunit.xsd"
bootstrap="./vendor/autoload.php">
<testsuites>
<testsuite name="Unit">
<directory suffix="Test.php">test</directory>
</testsuite>
</testsuites>
</phpunit>