使用JSFUnit / HtmlUnit / CSSParser时出错

时间:2010-04-20 18:02:20

标签: maven-2 jsf richfaces htmlunit jsfunit

我们最近刚刚将项目转换为使用Maven进行构建和依赖项管理,转换后,我在尝试在项目中运行任何JSFUnit测试时遇到以下异常。

Exception class=[java.lang.UnsupportedOperationException]
com.gargoylesoftware.htmlunit.ScriptException: CSSRule com.steadystate.css.dom.CSSCharsetRuleImpl is not yet supported.
    at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine$HtmlUnitContextAction.run(JavaScriptEngine.java:527)
    at net.sourceforge.htmlunit.corejs.javascript.Context.call(Context.java:537)
    ...

JSFUnit的所有依赖项和JAR都是使用JBoss存储库(http://repository.jboss.com/maven2/)在Maven中提取的。

我们在项目中使用以下依赖项:

  • jboss-jsfunit-core 1.2.0.Final
  • jboss-jsfunit-richfaces 1.2.0.Final
  • richfaces-ui 3.3.2.GA
  • openfaces 2.0
  • JSF 1.2_12
  • Facelets 1.1.14

在Maven管理依赖项之前,我们能够正常运行JSFUnit测试。我能够通过使用ss_css2.jar文件来解决问题,这个文件有人隐藏在我们的WEB-INF / lib目录中(从Maven转换之前)。我希望找出我是否可以采取其他措施来修复Maven中的依赖项,而不是自己管理一些依赖项。

1 个答案:

答案 0 :(得分:2)

你很可能会得到一个“不兼容”的HtmlUnit版本或另一个JAR(可以传递)。尝试使用之前使用的版本并在dependencyManagement部分下声明,例如

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>net.sourceforge.htmlunit</groupId>
      <artifactId>htmlunit</artifactId>
      <version>2.7</version><!-- put "your" version here -->
    </dependency>
  </dependencies>
</dependencyManagement>    

或者,如果您更改了任何版本,请尝试恢复到之前的完全状态(顺便说一句,您是否可以澄清先前版本与当前版本之间的差异?)。

更新:问题似乎与cssparser工件的版本有关。我没有完成所有必需的元素,但OP确实如此:)