PHPUnit找不到类的命名空间


PHPUnit cannot find classes namespace

我正在尝试使用PHPUnit运行一些单元测试,但是,当我使用命令行进行测试时,我的测试类无法从我的主类中找到命名空间。

这是我的文件夹结构:
data/ 
src/
    Dao/
    Entity/
        City.php
    Facade/
    SplClassLoader.php 
tests/
    Entity/
        CityTest.php
    bootstrap.php
    phpunit.xml 
vendor/ 
composer.json 
composer.lock

这是我在/src/Entity/

中的一个类的内容
<?php
namespace Entity;
class City
{
    /**
     * @var int
     */
    private $id;
我phpunit.xml

<?xml version="1.0" encoding="UTF-8"?>
<phpunit bootstrap="../vendor/autoload.php">
    <testsuites>
        <testsuite name="Application Test">
            <directory>tests</directory>
        </testsuite>
    </testsuites>
</phpunit>

和我的citytest。php

<?php
class CityTest extends PHPUnit_Framework_TestCase
{
    public function testAdd()
    {
        $city = new Entity'City(1, "London");
    }
}

当我运行命令phpunit tests/Entity/CityTest.php时,我得到了这个消息错误:

PHP致命错误:类"Entity'City"未找到

我能做些什么来解决这个问题?

谢谢。

我已经用一些更新解决了我的问题。下面是我最终的文件夹结构:
data/  
src/  
tests/  
vendor/
composer.json*  
composer.lock*
phpunit.xml*

phpunit.xml

<?xml version="1.0" encoding="UTF-8"?>
<phpunit backupGlobals="false"
         backupStaticAttributes="false"
         bootstrap="vendor/autoload.php"
         colors="true"
         convertErrorsToExceptions="true"
         convertNoticesToExceptions="true"
         convertWarningsToExceptions="true"
         processIsolation="false"
         stopOnFailure="false"
         syntaxCheck="false"
        >
    <testsuites>
        <testsuite name="Application Test Suite">
            <directory>./tests/</directory>
        </testsuite>
    </testsuites>
</phpunit>

composer.json

"require-dev": {
    "phpunit/phpunit": "4.8.*"
  },
  "config": {
    "process-timeout": 600,
    "preferred-install": "dist",
    "github-protocols": ["https"]
  },
  "autoload": {
    "psr-4": {
      "": "src/"
    }
  },

这个想法是使用"autoload"将项目的源代码添加到Composer中。

看到https://getcomposer.org/doc/01-basic-usage.md半自动的