编辑:
正如@nigelRen指出的那样,问题出在引号上。我从DBUnit文档中复制了XML作为起点,并且它附带的双引号字符似乎与我在编辑器中键入的双引号字符不同。过度设置它们可以解决此问题。
我对使用PHPUnit并不陌生,现在对DBUnit进行了扩充。我已经创建了一个测试数据库,并且正在使用createFlatXMLDataSet根据DBUnit文档在getDataSet()测试方法中向其中填充数据。
根据一连串的LibXMLErrors判断,我的XML文件格式似乎不正确:
RuntimeException: LibXMLError Object
│ (
│ [level] => 3
│ [code] => 33
│ [column] => 15
│ [message] => String not started expecting ' or "
│
│ [file] => /Users/lookdangerous/mono/master/php/tests/customer-seed.xml
│ [line] => 1
│ )
│ LibXMLError Object
│ (
│ [level] => 3
│ [code] => 96
│ [column] => 15
│ [message] => Malformed declaration expecting version
│
│ [file] => /Users/lookdangerous/mono/master/php/tests/customer-seed.xml
│ [line] => 1
│ )
│ LibXMLError Object
│ (
│ [level] => 3
│ [code] => 65
│ [column] => 15
│ [message] => Blank needed here
│
│ [file] => /Users/lookdangerous/mono/master/php/tests/customer-seed.xml
│ [line] => 1
│ )
(这只是我收到的许多信纸中的一部分。)
customer-seed.xml:
<?xml version=“1.0” encoding="UTF-8" ?>
<dataset>
<customers
GUID=“fe70e6fe-3e7f-4aa3-bf98-d48ed08ba80b”
ClientID=“ANDE8834”
/>
<customers
GUID=“9f3d1594-a743-41c3-9787-2f8d916287a3”
ClientID="FRAN3987"
/>
<dependents />
<rentals />
<businesses />
</dataset>
最后,调用函数的代码:
return $this->createFlatXMLDataSet(dirname(__FILE__).'/customer-seed.xml');
起初,this stack overflow question和this one似乎对magic_qutoes来说是一个问题,但后来我意识到我正在使用PHP 7+,因此不应该使用。
不过,这种行为似乎就像打开了魔术引号一样。我还质疑了文件编码,并添加了如上所述的编码标签,但无济于事。