问题描述
我有很多 Jasmine 单元测试,它们正在运行 Javascript 代码的单元测试.他们正在使用 Jasmine-jquery 插件来进行 DOM 操作.他们使用 loadFixture 来加载 HTML 的固定装置
I have lots of Jasmine unit tests, that are running unit tests for Javascripts code. They are using Jasmine-jquery plugin to do DOM manipulation. they use loadFixture, to load fixtures of HTML
我尝试使用 JsTestDriver 和 JasmineAdapter 自动化这些单元测试但是所有涉及 DOM-jquery 操作的测试都没有通过?这有什么问题吗?有没有办法将 Jasmine-jquery 与 JsTestDriver 一起使用?
I tried to automate those unit tests, using JsTestDriver, with JasmineAdapter But all tests involve DOM-jquery manipulation are not passing? Is there something wrong with that? Is there a way to use Jasmine-jquery with JsTestDriver?
推荐答案
我会回答自己,因为我找到了解决这个问题的方法.问题是 Jasmine-Jquery 正在使用 ajax 加载 html 夹具,并且它使用相对路径,假设 html 夹具位于相对于运行 Jasmine 测试的 HTML 容器的某个位置.但是因为 JsTestDriver 将测试加载到它自己的空间"中,所以我们必须更改 Jasmine-Jquery 查找这些 html 夹具的位置,并让 JsTestDriver 加载它们.
I will answer myself because I found a solution for this problem. The problem was Jasmine-Jquery is using ajax to load the html fixture, and it uses a relative path, assuming the html fixtures are located in somewhere relative to the HTML container that is running Jasmine tests. but because JsTestDriver is loading the tests inside its own "space", so we have to change the location, where Jasmine-Jquery looks for those html fixtures, and make JsTestDriver load them.
所以解决方法如下:
JsTestDriver 具有加载静态 html 文件的能力.在配置文件中添加以下内容:
JsTestDriver has the ability to load static html files. in config file add the following:
服务:-例如:服务:- 固定装置*.html
Serve: - for example: Serve: - fixtures*.html
现在您可以使用以下格式访问那些http:localhost:9876/test/fixtures/...你让 Jasmine-jquery 知道从这个位置加载灯具.
now you can access those with the following format http:localhost:9876/test/fixtures/... you let Jasmine-jquery knows to load the fixtures from this location.
瞧,您的测试将再次运行.
and voila, you will have your tests working again.
这篇关于Javascript JsTestDriver Jasmine &茉莉花jquery的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!