【问题标题】:mysqldump xml format and dbunit expected xml format in phpunit test in phpmysqldump xml 格式和 dbunit 在 phpunit 中预期的 xml 格式在 php 中测试
【发布时间】:2014-07-02 06:02:43
【问题描述】:

我正在使用 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,或者如何摆脱这个问题?

【问题讨论】:

    标签: php unit-testing phpunit dbunit


    【解决方案1】:

    您参考的文档中的格式适用于平面 XML 数据集,这不是使用 createMySQLXMLDataSet() 时所期望的格式。

    不过,从您的错误来看,您似乎实际上是错误地调用了createFlatXmlDataSet()

    您应该在createMySQLXMLDataSet() 调用中引用您使用mysqldump 生成的文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-03-08
      • 2023-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-04
      相关资源
      最近更新 更多