【问题标题】:Symfony2 with LiipFunctionalTestBundle error when i load fixture当我加载夹具时,Symfony2 与 LiipFunctionalTestBundle 错误
【发布时间】:2013-05-02 11:24:53
【问题描述】:

我已经安装了 LiipFunctionalTestBundle 并从昨天开始尝试使用它,但是我遇到了一个错误,我不知道如何解决它。

我使用文档中描述的基本配置(config_test):

framework:
test: ~
session:
    storage_id: session.storage.filesystem

liip_functional_test: ~

doctrine:
    dbal:
        default_connection: default
        connections:
            default:
                driver: pdo_sqlite
                path: %kernel.cache_dir%/test.sql

我在我的包中创建了一个简单的测试文件,只是为了知道我的数据库是否已加载:

class AdControllerTest extends WebTestCase
{
    public function testIndex()
    {
        $client = static::createClient();

        $this->loadFixtures(array());

        $this->assertTrue(true);
    }
}

当我使用 $this->loadFixtures(array());它工作正常,所以我可以从一个空数据库开始(用我的模式初始化) 但是当我更换它并尝试使用固定装置时,我遇到了这样的错误:

$this->loadFixtures(array('\Blabla\MyBunble\DataFixtures\ORM\LoadUserData'));

现在我有这个错误:

Doctrine\DBAL\DBALException: An exception occurred while executing 'PRAGMA table_info(transaction)':

SQLSTATE[HY000]: General error: 1 near "transaction": syntax error

我是测试新手,如果有人使用此捆绑包并作为提示,我将不胜感激:)

谢谢

【问题讨论】:

    标签: unit-testing symfony liipfunctionaltestbundle


    【解决方案1】:

    我有同样的错误,它让我发疯了两个小时,与 symfony 和测试相关的唯一信息是这个问题,但我的命名空间和路由都可以......那么问题是什么?这很简单...... TRANSACTION 是一个 SQLite 关键字:https://www.sqlite.org/lang_keywords.html 如果我删除缓存,测试在哪里工作,但是当它检索表信息时,它会因为表名而崩溃。

    我希望它对可能遇到同样问题的其他人有所帮助。

    【讨论】:

    • 谢谢,我也遇到了同样的问题!
    • 为了完整起见,当面对具有潜在危险名称的实体时,只需在表名中添加一些前缀/后缀。
    【解决方案2】:

    好吧,这是一个愚蠢的错误。

    当我清理缓存时,我看到了真正的错误:loadFixtures 由于命名空间错误而无法找到我的夹具。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-18
      • 1970-01-01
      • 2015-04-19
      • 2014-06-23
      • 1970-01-01
      相关资源
      最近更新 更多