PHPUnit自动加载器类与composer

PHPUnit自动加载器类与composer,php,testing,phpunit,composer-php,Php,Testing,Phpunit,Composer Php,我的项目结构是: --/ --src --tests --phpunit.xml --composer.json 我想使用composer从测试中的src文件夹自动加载我的类。 My composer.json: { "name": "codewars/pack", "description": "Codewars project", "type": "project", "require": { "fxp/composer-asset-plugin": "^1.2.0", "

我的项目结构是:

--/
--src
--tests
--phpunit.xml
--composer.json
我想使用composer从测试中的src文件夹自动加载我的类。 My composer.json:

{
"name": "codewars/pack",
"description": "Codewars project",
"type": "project",
"require": {
    "fxp/composer-asset-plugin": "^1.2.0",
    "phpunit/phpunit": "5.5.*",
    "phpunit/dbunit": "2.0.*"
},
"autoload": {
    "psr-4": {"Source\\": "src/"
    }
}

}
生成的自动排序文件:

<?php

// autoload_psr4.php @generated by Composer

$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);

return array(
'Source\\' => array($baseDir . '/src'),
);
当我运行测试时,我会得到错误,比如致命错误:调用未定义的函数Source\findMissing()


请帮助我,我如何解决这个问题?

PSR-4是为自动加载类而设计的,不是为函数设计的。因为php无法使用您的函数找到文件

使用类和静态方法编写代码可能更好?然后你可以使用PSR-4自动加载。另一种方法是将“文件”部分指定为
autoload
部分

{
    "name": "codewars/pack",
    "description": "Codewars project",
    "type": "project",
    "require": {
        "fxp/composer-asset-plugin": "^1.2.0",
        "phpunit/phpunit": "5.5.*",
        "phpunit/dbunit": "2.0.*"
},
"autoload": {
    "files": [
        "src/my_cool_function1.php",
        "src/my_cool_function2.php"
    ],
    "psr-4": {
        "Source\\": "src/"
    }
}

有关更多信息,请参见为自动加载类而设计的PSR-4,而不是为函数而设计的PSR-4。因为php无法使用您的函数找到文件

使用类和静态方法编写代码可能更好?然后你可以使用PSR-4自动加载。另一种方法是将“文件”部分指定为
autoload
部分

{
    "name": "codewars/pack",
    "description": "Codewars project",
    "type": "project",
    "require": {
        "fxp/composer-asset-plugin": "^1.2.0",
        "phpunit/phpunit": "5.5.*",
        "phpunit/dbunit": "2.0.*"
},
"autoload": {
    "files": [
        "src/my_cool_function1.php",
        "src/my_cool_function2.php"
    ],
    "psr-4": {
        "Source\\": "src/"
    }
}
有关更多信息,请参阅

{
    "name": "codewars/pack",
    "description": "Codewars project",
    "type": "project",
    "require": {
        "fxp/composer-asset-plugin": "^1.2.0",
        "phpunit/phpunit": "5.5.*",
        "phpunit/dbunit": "2.0.*"
},
"autoload": {
    "files": [
        "src/my_cool_function1.php",
        "src/my_cool_function2.php"
    ],
    "psr-4": {
        "Source\\": "src/"
    }
}