[英]mysqldump xml format and dbunit expected xml format in phpunit test in php
我正在使用dbunit进行phpunit测试。 这是我第一次在php上测试。
我通过这个命令创建xml:
mysqldump --xml -t -u username -p database > seed.xml
之后根据doc xml应该采用以下格式:
<?xml version="1.0" ?>
<dataset>
<guestbook id="1" content="Hello buddy!" user="joe" created="2010-04-24 17:15:23" />
<guestbook id="2" content="I like it!" created="2010-04-26 12:14:20" />
</dataset>
但在我生成的xml中,它看起来像:
<?xml version="1.0"?>
<mysqldump xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<database name="demo_app">
<table_data name="test">
<row>
<field name="id">1</field>
</row>
</table_data>
<table_data name="test2">
<row>
<field name="id">1</field>
<field name="name">asdas</field>
</row>
<row>
<field name="id">2</field>
<field name="name">asDASD</field>
</row>
</table_data>
</database>
</mysqldump>
当我试图在我的测试类中运行它时:
$this->createMySQLXMLDataSet('seed.xml');
我收到此错误:
PHPUnit_Extensions_Database_Exception:必须调用平面xml数据集文件的根元素
我使用的是phpunit 4.1.0和dbunit 1.3
如何以预期的格式生成xml或如何摆脱此问题?
您引用的文档中的格式是针对Flat XML Dataset的,这与使用createMySQLXMLDataSet()
时的预期不同。
但是,从您的错误来看,似乎您实际上错误地调用了createFlatXmlDataSet()
。
您应该在createMySQLXMLDataSet()
调用中引用您使用mysqldump
生成的文件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.