Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
防止'中的测试错误;mvn站点';罗马依赖和cobertura maven插件的目标_Maven_Cobertura_Maven Site Plugin_Jdom 2 - Fatal编程技术网

防止'中的测试错误;mvn站点';罗马依赖和cobertura maven插件的目标

防止'中的测试错误;mvn站点';罗马依赖和cobertura maven插件的目标,maven,cobertura,maven-site-plugin,jdom-2,Maven,Cobertura,Maven Site Plugin,Jdom 2,在基于Maven的项目中,一些JUnit测试失败,但仅在Maven站点构建期间失败。执行时 mvn clean package 所有测试都通过了。但在执行时: mvn clean site 某些测试生成消息: 无法初始化类org.jdom2.input.sax.XMLReaders 这些错误发生在使用ROME解析RSS数据的类中。为此,该项目依赖于ROME(com.rometools:ROME:1.5.0),而ROME本身也依赖于JDOM 2.0.2 当ROME依赖项尚未包含在项目中时,错误

在基于Maven的项目中,一些JUnit测试失败,但仅在Maven站点构建期间失败。执行时

mvn clean package
所有测试都通过了。但在执行时:

mvn clean site
某些测试生成消息:
无法初始化类org.jdom2.input.sax.XMLReaders

这些错误发生在使用ROME解析RSS数据的类中。为此,该项目依赖于ROME(com.rometools:ROME:1.5.0),而ROME本身也依赖于JDOM 2.0.2

当ROME依赖项尚未包含在项目中时,错误不会发生

Maven站点配置包括cobertura Maven插件。这还通过Jaxen:Jaxen:Jaxen:1.0->JDOM:JDOM:1.0依赖于JDOM

我认为在执行站点目标时,被测试的类使用了JDOM 1.0版本,这导致了ROME库中的错误,因为它使用了不正确的JDOM版本


我不知道如何将项目配置为仅在Cobertura插件中使用JDOM 1.0。是否有人知道如何在站点目标期间实现这一点并使测试成功运行?

通过在程序启动期间设置系统值,问题得以解决:

System.setProperty("javax.xml.parsers.SAXParserFactory",
    "com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl");
资料来源: