PHP单元测试中基于XSD模式的XML验证

PHP单元测试中基于XSD模式的XML验证,php,xml,unit-testing,xsd,Php,Xml,Unit Testing,Xsd,我正在开发一个支持PHP的应用程序组件,它将一些数据导出到XML文件,该文件必须遵循XSD文件定义的方案。我知道如何手动验证该文件,但如果可以在单元测试中进行验证,那将非常方便 是否有任何库或框架可以帮助我做到这一点?一种可能是使用或。由于这两个方法中的任何一个都返回布尔值,因此您可以断言返回的值为true此库定义了一个自定义PHPUnit\u框架约束使用DOMDocument::schemaValidate 其优点是,当验证失败时,它会给出一个有用的错误,而不仅仅是说“false不是true”

我正在开发一个支持PHP的应用程序组件,它将一些数据导出到XML文件,该文件必须遵循XSD文件定义的方案。我知道如何手动验证该文件,但如果可以在单元测试中进行验证,那将非常方便


是否有任何库或框架可以帮助我做到这一点?

一种可能是使用或。由于这两个方法中的任何一个都返回布尔值,因此您可以断言返回的值为
true

此库定义了一个自定义
PHPUnit\u框架约束
使用
DOMDocument::schemaValidate

其优点是,当验证失败时,它会给出一个有用的错误,而不仅仅是说“false不是true”

用法



注意:这是我自己的开源库的一个无耻的插件。

我想这是一种方法,非常简单。我从未意识到DOMDocument能够根据XSD模式进行验证。非常感谢你。
$constraint = new Jasny\PHPUnit\Constraint\XSDValidation("myschema.xsd");

$xml = $this->object->doSomething();
$this->assertThat($xml, $constraint);