gpt4 book ai didi

php - mysqldump xml 格式和 dbunit 在 phpunit 测试中预期的 xml 格式

转载 作者:可可西里 更新时间:2023-10-31 23:40:33 30 4
gpt4 key购买 nike

我正在使用 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: The root element of a flat xml data set file must be called

我正在使用 phpunit 4.1.0 和 dbunit 1.3

如何生成预期格式的 xml 或如何解决此问题?

最佳答案

您引用的文档格式适用于平面 XML 数据集,这不是使用 createMySQLXMLDataSet() 时预期的格式。

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

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

关于php - mysqldump xml 格式和 dbunit 在 phpunit 测试中预期的 xml 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23650305/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com