0

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

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

谢谢

4

2 回答 2

4

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

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

于 2014-01-10T08:50:39.280 回答
0

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

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

于 2013-05-02T15:51:55.490 回答