我在用dbunit进行phpunit测试。这是我第一次用php进行测试。
我正在通过以下命令创建XML:

mysqldump --xml -t -u username -p database > seed.xml

之后根据docxml应采用以下格式:
<?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_异常:必须调用平面xml数据集文件的根元素
我正在使用phpunit 4.1.0和dbunit 1.3
如何以预期格式生成XML,或者如何解决此问题?

最佳答案

您引用的文档中的格式是用于平面XML数据集的,这不是使用createMySQLXMLDataSet()时所期望的格式。
不过,从你的错误来看,似乎你实际上是在错误地调用createFlatXmlDataSet()
您应该在mysqldump调用中引用用createMySQLXMLDataSet()生成的文件。

10-01 05:50