单元测试 – angular-mock.js与htmlunit冲突?如何使用maven-jas
我是maven和jasmine的新手,我在设置maven以在角度应用程序上运行单元测试时遇到问题.一旦我将angular-mocks.js添加到test /
javascript / lib文件夹中,我就陷入了麻烦.
mvn test只是通过添加angular-mocks文件抛出htmlunit.ScriptException.如果我删除文件,它运行得很好(当然没有部件依赖于模拟,但它们作为单元测试失败而不是抛出错误). 有谁知道什么可能导致此错误以及如何解决它? 编辑 CHROME给出:
FIREFOX_3_6给出:
INTERNET_EXPLORER_9给出:
堆栈跟踪(摘录FF): [ERROR] Failed to execute goal com.github.searls:jasmine-maven-plugin:1.3.1.2:test (default) on project my-jasmine-project: The jasmine-maven-plugin encountered an exception: [ERROR] java.lang.RuntimeException: org.openqa.selenium.WebDriverException: com.gargoylesoftware.htmlunit.ScriptException: Exception invoking Node.removeEventListener() with arguments [String,NativeArray,Boolean] [ERROR] Build info: version: '2.32.0',revision: '6c40c187d01409a5dc3b7f8251859150c8af0bcb',time: '2013-04-09 10:39:28' [ERROR] System info: os.name: 'Mac OS X',os.arch: 'x86_64',os.version: '10.8.4',java.version: '1.6.0_51' [ERROR] Driver info: driver.version: HtmlUnitDriver [ERROR] at com.github.searls.jasmine.runner.SpecRunnerExecutor.execute(SpecRunnerExecutor.java:39) ... pom.xml(摘录): <plugin> <groupId>com.github.searls</groupId> <artifactId>jasmine-maven-plugin</artifactId> <version>1.3.1.2</version> <configuration> <preloadSources> <source>lib/angular.js</source> <!-- <source>lib/angular-mocks.js</source> --> <source>http://code.angularjs.org/1.1.5/angular-mocks.js</source> </preloadSources> </configuration> <executions> <execution> <goals> <goal>test</goal> </goals> </execution> </executions> </plugin> 将angular-mocks.js添加到test / javascript / lib文件夹并直接从angularjs网站引用它都会产生相同的错误. 解决方法
在CHROME浏览器版本中,当angular尝试加载JQLite的jQuery库的api兼容子集时,会发生错误,该子集允许angular操作DOM.我能够通过下载未压缩版本的jQuery(v1.10.2),angular(v1.0.7)和angular-mocks(v1.0.7)来解决这个问题.我在jasmine-maven-plugin中的配置中添加了以下内容.
<preloadSources> <preloadSource>${angular-test-deps}/jQuery.js</preloadSource> <preloadSource>${angular-test-deps}/angular.js</preloadSource> <preloadSource>${angular-test-deps}/angular-mocks.js</preloadSource> </preloadSources> 角度文档声明“Real jQuery总是优先于jqLit??e,前提是它在DOMContentLoaded事件触发之前加载”(未压缩的1.0.7的第1448行).此修复程序仍然使用CHROME浏览器版本失败,但可以使用FIREFOX_3_6,FIREFOX_17,INTERNET_EXPLORER_9,INTERNET_EXPLORER_8和INTERNET_EXPLORER_7. jasmine-maven-plugin默认为FIREFOX_3_6 borwser版本,因此无需指定浏览器版本. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |