当我加载夹具时,Symfony2与LiipFunctionalTestBundle错误

时间:2013-05-02 11:24:54

标签: unit-testing symfony liipfunctionaltestbundle

我已经安装了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

我在测试方面很新,如果有人使用这个软件包并作为提示,我将不胜感激:)

由于

2 个答案:

答案 0 :(得分:4)

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

我希望它对任何可能遇到同样问题的人都有帮助。

答案 1 :(得分:0)

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

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