我在我的应用程序中使用Xalan,但需要使用Saxon与参考实现一起生成测试输出以进行比较。 我想在单元测试期间同时使用它们。 但是,一旦在项目.pom中添加对Saxon的依赖项,应用程序似乎在测试期间对所有xslt和XPath操作都使用Saxon:
<dependency>
<groupId>net.sf.saxon</groupId>
<artifactId>Saxon-HE</artifactId>
<version>9.4</version>
<scope>test</scope>
</dependency>
由于XPath的不同行为,当生成输出时,主应用程序会失败。在测试范围之外运行主应用程序时,它可以正常工作。
在测试期间,我该如何使用Xalan运行主应用程序,但使用Saxon运行测试?
在运行Xalan和Saxon部分之前,我尝试设置以下属性:
System.setProperty("javax.xml.transform.TransformerFactory", "org.apache.xalan.processor.TransformerFactoryImpl ");
System.setProperty("javax.xml.transform.TransformerFactory", "net.sf.saxon.TransformerFactoryImpl");
我也尝试将Xalan和Saxon部分放在不同的项目中,并尝试从第三个项目中同时使用它们,但结果相同。