php无法在同一个命名空间中找到类

时间:2017-05-05 16:38:58

标签: php namespaces phpunit

我无法弄清楚我的phpunit测试没有在同一名称空间中找到一个类的原因。

composer.json

"autoload": {
    "psr-4": {
        "LeonLombard\\OandaApi\\": ["src"]
    }
},
"autoload-dev": {
    "psr-4": {
        "LeonLombard\\OandaApi\\": ["tests"]
    }
},

的src / OandaApi.php

<?php namespace LeonLombard\OandaApi;

class OandaApi
{
}

测试/ OandaApiTest.php

<?php namespace LeonLombard\OandaApi;

class OandaApiTest extends \PHPUnit_Framework_TestCase
{
    public function testGetAnInstrumentListWithDefaultOptions()
    {
        $oandaApi = new OandaApi();
    }
}

测试/ phpunit.xml

<phpunit
    bootsrap="../vendor/autoload.php"
>
    <testsuites>
        <testsuite name="All Tests">
            <directory>./</directory>
        </testsuite>
    </testsuites>
</phpunit>

这是我在运行phpunit --config tests/phpunit.xml时遇到的错误:

致命错误:Class&#39; LeonLombard \ OandaApi \ OandaApi&#39;在第7行的/Users/leonlombard/Sites/oanda-api/tests/OandaApiTest.php中找不到

任何想法都将不胜感激。我见过其他类似设置的帖子,看不出为什么他们会工作而不是我的。

感谢。

1 个答案:

答案 0 :(得分:0)

  

是否可以使用 src / tests / / composer.json

的psr-04中的em> 目录

在composer.json

  

<强> 之前

"autoload": {
    "psr-4": {
        "LeonLombard\\OandaApi\\": ["src"]
    }
},
"autoload-dev": {
    "psr-4": {
        "LeonLombard\\OandaApi\\": ["tests"]
    }
},
  

<强>

"autoload": {
    "psr-4": {
        "LeonLombard\\OandaApi\\": "src/"
    }
},
"autoload-dev": {
    "psr-4": {
        "LeonLombard\\OandaApi\\": "tests/"
    }
},

我认为它适合你。 以下是链接,请访问该网站。对您有所帮助。 https://getcomposer.org/doc/04-schema.md#psr-4

  

谢谢。