我已经安装了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
我在测试方面很新,如果有人使用这个软件包并作为提示,我将不胜感激:)
由于
答案 0 :(得分:4)
我有同样的错误,它让我疯了两个小时,与symfony和测试相关的唯一信息是这个问题,但我的命名空间和路线哪里好......所以问题是什么?这很简单...... TRANSACTION是一个SQLite关键字:https://www.sqlite.org/lang_keywords.html如果我删除缓存测试工作,但是当它检索表信息时,它会因表名而崩溃。
我希望它对任何可能遇到同样问题的人都有帮助。
答案 1 :(得分:0)
好吧,这是一个愚蠢的错误。
当我清理缓存时,我看到了真正的错误:由于命名空间错误,loadFixtures无法找到我的夹具。