Класс не найден в PHPUnit, но распознается кодом Visual Studio - PullRequest
0 голосов
/ 09 мая 2018

Когда я запускаю PHPUnit в своем проекте, я сталкиваюсь с этой проблемой.

$ vendor / 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());
    }


}

в composer.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 ссылается на класс.

1 Ответ

0 голосов
/ 10 мая 2018

Я нашел решение. Composer не генерирует файлы автозагрузки должным образом. Использование composer update решило проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...