我有很多Jasmine单元测试,它们为Javascripts代码运行单元测试。他们正在使用Jasmine-jquery插件来进行DOM操作。它们使用loadFixture加载HTML的fixture
我试图使用JsTestDriver和JasmineAdapter自动化这些单元测试,但所有的测试都涉及到DOM-jquery操作不能通过吗?这有什么问题吗?有没有办法在JsTestDriver中使用Jasmine-jquery?
发布于 2011-09-20 23:34:51
我会回答我自己,因为我找到了这个问题的解决方案。问题是Jasmine-Jquery正在使用ajax加载html fixture,并且它使用相对路径,假设html fixture位于相对于运行Jasmine测试的HTML容器的某个位置。但是因为JsTestDriver是在自己的“空间”中加载测试的,所以我们必须更改Jasmine-Jquery查找这些html fixture的位置,并让JsTestDriver加载它们。
因此,解决方案如下:
JsTestDriver具有加载静态html文件的能力。在配置文件中添加以下内容:
服务:-例如:服务:- fixtures*.html
现在您可以使用以下格式访问这些文件:localhost:9876/test/fixtures/...您让Jasmine-jquery知道从这个位置加载fixture。
瞧,你将会让你的测试再次工作。
发布于 2011-11-02 05:51:54
只是为了澄清一下previous posting。
如果在您的jsTestDriver配置文件中有:
发球:
spec/fixtures/*_fixture.html然后,您需要用以下命令覆盖测试套件
jasmine.getFixtures().fixturesPath = '/test/spec/fixtures';它基本上是您在jsTestDriver配置文件的serve部分中声明的/test/ +路径。
发布于 2013-02-17 03:28:34
我刚刚发布了一个开源工具包,希望它能像帮助我一样帮助其他人。它是许多开源工具的组合,为你提供了一个开箱即用的骨干应用程序。
它对此有一个更优雅的解决方案,它使用requirejs text plugin和requirejs handlebars插件。
它提供了单一的运行命令: dev web server,jasmine单浏览器测试运行器,jasmine js- test -driver多浏览器测试运行器,以及JavaScript和CSS的拼接/缩小。它还输出用于生产调试的未最小化版本的应用程序,预编译您的handlebar模板,并支持国际化。不需要设置。它就是这样的。
http://github.com/davidjnelson/agilejs
https://stackoverflow.com/questions/7476612
复制相似问题