簡體   English   中英

mysqldump xml格式和dbunit預期在phpunit測試中的xml格式

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM