Can';t使用PSR4使名称空间在PHPUnit测试中工作
目前,我正在尝试使用PSR4名称空间标准创建一个PHP库。我无法使PHPUnit测试套件在我的独立库中正常工作。从下面显示的错误可以看出,我对名称空间的理解似乎不正确。我做错了什么,这是一个名称空间、PHPUnit测试错误还是一个实现问题Can';t使用PSR4使名称空间在PHPUnit测试中工作,php,unit-testing,namespaces,composer-php,phpunit,Php,Unit Testing,Namespaces,Composer Php,Phpunit,目前,我正在尝试使用PSR4名称空间标准创建一个PHP库。我无法使PHPUnit测试套件在我的独立库中正常工作。从下面显示的错误可以看出,我对名称空间的理解似乎不正确。我做错了什么,这是一个名称空间、PHPUnit测试错误还是一个实现问题 SearchTest::testIsThereAnySyntaxError Error: Class 'Purencoool\Search\Search' not found Json编写器文件名自动加载命名空间 "autoload&quo
SearchTest::testIsThereAnySyntaxError
Error: Class 'Purencoool\Search\Search' not found
Json编写器文件名自动加载命名空间
"autoload": {
"psr-4": {
"Purencool\\Search\\": "src"
}
},
"autoload-dev": {
"psr-4": {
"Purencool\\Search\\": "tests"
}
}
普氏试验
public function testIsThereAnySyntaxError()
{
$var = new Purencoool\Search\Search;
$this->assertTrue(is_object($var));
unset($var);
}
要运行测试并查看文件结构,请转到
我正在用PHP版本测试它
PHP 7.3.20 (cli) (built: Jul 9 2020 23:55:30) ( NTS )
如果
\Purencool\Search
是src/
中的内容,那么\Purencool\Search\Search
应该在src/Search.php
中。我猜“Purencool\\ \”:“src”
就是你的意思,或者只是Purencool\Search
(作为一个完整的限定类名),如果Search
应该是你的基本名称空间。请注意,我经常把这些映射搞混,所以我可能弄错了。那么,你是说我的命名空间应该是composer.json中的`“purencol\\\ \:“src”`并且目录结构应该是src/purencol/Search/Search.php
?嘿,谢谢,我刚刚做了以下提交,但我仍然得到同样的错误,再次感谢,我做了您建议的更改,但仍然得到以下错误1)SearchTest::testisThereaysyntaxerror错误:未找到类“purencool\Search”
No-No-No-No,我的意思是在purencool
中有一个额外的o
(如字母o
)。有三个o。您的名称/命名空间只有两个。应该是new Purencool\Search\Search
。如果\Purencool\Search
是src/
中的内容,那么\Purencool\Search\Search
应该是src/Search.php
中的内容。我猜“Purencool\\ \”:“src”
就是你的意思,或者只是Purencool\Search
(作为一个完整的限定类名),如果Search
应该是你的基本名称空间。请注意,我经常把这些映射搞混,所以我可能弄错了。那么,你是说我的命名空间应该是composer.json中的`“purencol\\\ \:“src”`并且目录结构应该是src/purencol/Search/Search.php
?嘿,谢谢,我刚刚做了以下提交,但我仍然得到同样的错误,再次感谢,我做了您建议的更改,但仍然得到以下错误1)SearchTest::testisThereaysyntaxerror错误:未找到类“purencool\Search”
No-No-No-No,我的意思是在purencool
中有一个额外的o
(如字母o
)。有三个o。您的名称/命名空间只有两个。应该是new Purencool\Search\Search
。