php - 在 PHPUnit 中找不到类但被 Visual Studio Code 识别
问题描述
当我在我的项目中运行 PHPUnit 时,我遇到了这个问题。
$ 供应商/bin/phpunit
PHPUnit 6.5.8 by Sebastian Bergmann and contributors.
Estring(29) "PHPFuzzy\Models\CriterionList"
Time: 59 ms, Memory: 4.00MB
There was 1 error:
1) FuzzyAHPTest::testDefineDecisionMaker
Error: Class 'PHPFuzzy\Models\CriterionList' not found
~/Documents/PHPFuzzy/tests/FuzzyAHPTest.php:10
ERRORS!
Tests: 1, Assertions: 0, Errors: 1.
测试/FuzzyAHPtest.php
use PHPFuzzy\Models\{FuzzyNumber as §, DecisionMaker, Criterion, CriterionList, Alternative, AlternativeList};
use PHPFuzzy\{ FuzzyMCDM, Utils };
use PHPUnit\Framework\TestCase;
class FuzzyAHPTest extends TestCase{
public function testDefineDecisionMaker(){
var_dump(CriterionList::class);
$subcriteria1 = new CriterionList([
new Criterion("SubCriteria 1"),
new Criterion("SubCriteria 2"),
new Criterion("SubCriteria 3")
]);
$subcriteria2 = new CriterionList([
new Criterion("SubCriteria 4"),
new Criterion("SubCriteria 5"),
new Criterion("SubCriteria 6"),
new Criterion("SubCriteria 7")
]);
$criteria = new CriterionList([
new Criterion("Criteria 1", $subcriteria1),
new Criterion("Criteria 2", $subcriteria2)
]);
$alts = new AlternativeList([
new Alternative("Kia"),
new Alternative("Nissan"),
new Alternative("Alfa Romeo")
]);
$dm = new DecisionMaker("Decision Maker 1", $criteria);
$AHPSess = FuzzyMCDM::AHP($dm, $alts, $pcml);
d($AHPSess->listPCMCombinations());
// $this->assertEquals($expected->getMatrix(), $a->getMatrix());
}
}
在作曲家.json
{
"name": "bahadircyildiz/phpfuzzy",
"description": "Fuzzy Logic library.",
"keywords": ["fuzzy", "logic", "library"],
"license": "MIT",
"authors": [
{
"name": "Bahadir Can Yildiz",
"email": "mail@bahadircyildiz.com"
}
],
"type": "project",
"require": {
"php": ">=7.0",
"markrogoyski/math-php": "^0.39.0"
},
"require-dev": {
"phpunit/phpunit": "*",
"kint-php/kint": "*"
},
"suggest":{
"ext-operator": "Enables FuzzyNumber class to use arithmetic operators."
},
"autoload": {
"psr-4": {
"PHPFuzzy\\": "src/"
}
},
"autoload-dev":{
"psr-4": {
"PHPFuzzy\\Tests\\": "tests/"
}
},
"conflict": {
"phpunit/php-timer": ">=2"
}
}
这是我的文件结构
src/
MCDM/
FuzzyAHP.php
Models/
Alternative.php
AlternativeList.php
Criterion.php
CriterionList.php
...
tests/
FuzzyAHPtest.php
...
总结一下,我可以转储CriterionList类名,但是当我想创建一个实例时,它找不到类。另一方面,Visual Studio Code 引用该类。
解决方案
我找到了解决方案。Composer 没有正确生成自动加载文件。使用composer update
解决了这个问题。
推荐阅读
- javascript - 在 Javascript 中,如何在没有时区的情况下打印出 Date 对象的日期和时间?
- google-apps-script - 导航谷歌应用脚本的最佳实践
- swiftui - 如何在 SwiftUI 中通过 lineLimit 限制 TextEditor?
- maven - 创建spring基础知识后的maven pom.xml,出现错误
- forms - KeyDown 事件:vbKeyUp、vbKeyDown 以增加表单中的日期字段而不会失去字段的焦点
- stripe-payments - 如何在 Stripe 的服务器端检查支付是否成功
- css - SASS @extend 生成的类
- go - 解析字符串以浮动货币
- javascript - Marked 不会清理 VueJS 组件中的自述文件
- typescript - 导入 OpenAPI 规范生成的类型