Symfony2 phpunit测试失败,orm.yml中的错误无效映射文件

时间:2016-01-05 17:05:27

标签: unit-testing symfony doctrine mapping fosuserbundle

我是一个项目新手,我们希望恢复工作的立场。 我在项目中找到了testfiles。对我来说,这是一个很好的参与条目并找出问题。

所以,在此之前说,这是一个使用fosuserbundle的symfony 2.8项目。 回到我的问题:当我在终端中执行phpunit时,我从doctrine获取MappingExceptions:

Sebastian Bergmann和贡献者的PHPUnit 5.1.3。

w WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW /

时间:1.4秒,内存:36.50Mb

有2个错误:

1) ******\*****Bundle\Tests\Controller\******ControllerTest::testIndex
Doctrine\Common\Persistence\Mapping\MappingException: Invalid mapping file '******.UserBundle.Entity.User.orm.yml' for class '*******\UserBundle\Entity\User'.


/var/www/*****vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/MappingException.php:86
/var/www/********/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/Driver/FileDriver.php:117
/var/www/********/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/Driver/YamlDriver.php:56
/var/www/********/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/Driver/MappingDriverChain.php:102
/var/www/*******/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:116
/var/www/*******/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php:332
/var/www/*******/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php:216
/var/www/********/vendor/doctrine/orm/lib/Doctrine/ORM/EntityManager.php:265
/var/www/********/vendor/doctrine/orm/lib/Doctrine/ORM/Repository/DefaultRepositoryFactory.php:67
/var/www/********/vendor/doctrine/orm/lib/Doctrine/ORM/Repository/DefaultRepositoryFactory.php:50
/var/www/*******/vendor/doctrine/orm/lib/Doctrine/ORM/EntityManager.php:665
/var/www/*******/vendor/friendsofsymfony/user-bundle/Doctrine/UserManager.php:40

似乎用户实体和相关的映射文件出了问题。 但是只有当我执行phpunit时才会出现这些错误。我删除了用户实体和orm文件,并运行命令生成实体和更新架构。他们的工作没有任何错误。

这是or.yml:

*****\UserBundle\Entity\User:
    type: entity
    table: fos_user
    repositoryClass: ******\UserBundle\Entity\UserRepository
    id:
        id:
            type: integer
            id: true
            generator:
                strategy: AUTO

    fields:
        confirm:
            type: bigint 

这里是从fos超类用户

扩展的enity类
<?php

namespace *****\UserBundle\Entity;

use FOS\UserBundle\Model\User as BaseUser;
use Doctrine\ORM\Mapping as ORM;

/**
 *
 */
class User extends BaseUser
{
    /**
     * @var integer
     */
    protected $confirm;

    /**
     * Set confirm
     *
     * @param integer $confirm
     * @return User
     */
    public function setConfirm($confirm)
    {
        $this->confirm = $confirm;
        return $this;
    }

    /**
     * Get confirm
     *
     * @return integer 
     */
    public function getConfirm()
    {
        return $this->confirm;
    }

}

我现在花了整整一天的时间来处理这个问题,但我无法弄清楚出了什么问题。似乎对于教义是yml文件无效,但为什么它只发生在unittest?

问候

0 个答案:

没有答案