有人可以指出我正确的方向。我已经下载了一个GIT项目Namshi / JOSE,它是一个JWT签名和验证库。我有一个目录结构如下所示。
我的所有单元测试(在 tests 文件夹内都能正常工作,所以 composer.json 和 bootstrap.php 文件都可以。但是当我尝试添加自己的测试时,在 myTests-> simpleTest.php 文件夹中,如下所示,我无法获取命名空间来解析类 SimpleJWS 。库的名称空间是 Namshi / JOSE 。我的简单测试调用代码是:
<?php
use Namshi\JOSE\SimpleJWS;
//require_once ("../src/Namshi/JOSE/SimpleJWS.php");
$jws = new SimpleJWS(array(
'alg' => 'RS256'
));
错误文字为:Fatal error: Class 'Namshi\JOSE\SimpleJWS' not found
。 psr-4语句如下:
"autoload": {
"psr-4": {
"Namshi\\JOSE\\": "src/Namshi/JOSE/"
}
},
"autoload-dev": {
"psr-4": {
"Namshi\\JOSE\\Test\\": "tests/Namshi/JOSE/Test/"
}
非常感谢任何帮助。
答案 0 :(得分:1)
您对自动加载的想法是正确的,但正如您所说,您的测试文件位于“myTests”下;你的autoload-dev只是指向错误的目录“tests / Namshi / JOSE / Test /”,而你的文件位于“myTests”中。
"autoload-dev": {
"psr-4": {
"Namshi\\JOSE\\Test\\": "myTests"
}
}
另请确保您的考试类的FQCN(完全合格的班级名称)为Namshi\JOSE\Test\simpleTest
。
<?php
namespace Namshi\JOSE\Test;
class simpleTest {}
根据以下评论,您错过了测试套件中自动加载的内容。