未找到 PHPUnit Class
PHPUnit Class not found
文件夹结构
/app/lib/Helper.php
/tests/HelperTest.php
/vendor/autoload.php
composer.json
{
"require-dev": {
"phpunit/phpunit": "*"
},
"autoload": {
"psr-4": {
"Datapark\LPS\": "app/"
}
},
"autoload-dev": {
"psr-4": {
"Datapark\LPS\Tests\": "tests/"
}
},
}
Helper.php
<?php
namespace lib;
class Helper
{
public function array_get($array, $key, $default = null)
{
// code
}
}
HelperTest.php
<?php
use lib\Helper;
class HelperTest extends \PHPUnit_Framework_TestCase
{
public function test_array_get()
{
$helper = new Helper();
}
}
服务器上的命令 I 运行
[Debian 8 / PHP7]
phpunit --bootstrap vendor/autoload.php tests
错误我得到
1) HelperTest::test_array_get
Error: Class 'lib\Helper' not found
lib\Helper 是通过命名空间加载的,我的 IDE (PhpStorm) 也能识别它。
已经挣扎了几个小时,却无法正常工作。
您的自动加载配置显示:
"Datapark\LPS\": "app/"
这意味着:
classes in app
directory have Datapark\LPS\
namespace prefix.
例如,文件 app/lib/Helper.php
中的 class 应该有命名空间 Datapark\LPS\lib
。因此,您需要将 Helper
class 的命名空间声明更改为:
namespace Datapark\LPS\lib;
你的测试文件夹也有类似的问题。
我注意到当我 运行:
$ vendor/bin/phpunit tests
然后我的测试开始工作
文件夹结构
/app/lib/Helper.php
/tests/HelperTest.php
/vendor/autoload.php
composer.json
{
"require-dev": {
"phpunit/phpunit": "*"
},
"autoload": {
"psr-4": {
"Datapark\LPS\": "app/"
}
},
"autoload-dev": {
"psr-4": {
"Datapark\LPS\Tests\": "tests/"
}
},
}
Helper.php
<?php
namespace lib;
class Helper
{
public function array_get($array, $key, $default = null)
{
// code
}
}
HelperTest.php
<?php
use lib\Helper;
class HelperTest extends \PHPUnit_Framework_TestCase
{
public function test_array_get()
{
$helper = new Helper();
}
}
服务器上的命令 I 运行 [Debian 8 / PHP7]
phpunit --bootstrap vendor/autoload.php tests
错误我得到
1) HelperTest::test_array_get
Error: Class 'lib\Helper' not found
lib\Helper 是通过命名空间加载的,我的 IDE (PhpStorm) 也能识别它。 已经挣扎了几个小时,却无法正常工作。
您的自动加载配置显示:
"Datapark\LPS\": "app/"
这意味着:
classes in
app
directory haveDatapark\LPS\
namespace prefix.
例如,文件 app/lib/Helper.php
中的 class 应该有命名空间 Datapark\LPS\lib
。因此,您需要将 Helper
class 的命名空间声明更改为:
namespace Datapark\LPS\lib;
你的测试文件夹也有类似的问题。
我注意到当我 运行:
$ vendor/bin/phpunit tests
然后我的测试开始工作