English 中文(简体)
Jasmine + JSTestDriver + 覆盖面+要求JS
原标题:Jasmine + JSTestDriver + Coverage + RequireJS

哇,乱七八糟的,情况是这样的

  • Backbone driven JS app.
  • AMD 功能需要JS, 初始化如下:

    <script data-main="js/main" src="js/require.js" type="text/javascript"></script>
    

    然后在主. js 内设置以下配置代码:

    require.config(
    {
        paths:
        {
            ... : ...
        }
    });
    

    每个后骨视图/ 摩德尔/ 路透是一个“ define(...) ” 模块, 而“ require (“ 单路人 ” ) ” 在主. js 中被调用一次 。

  • rjs 用作 Uglify/Clocure 的优化器。 一个已编译的主 js 是在./ release 子文件夹中创建的, 我在我的.net 框架内动态选取 。

  • 花了相当长的时间才把后骨 + 要求。 JS 工作,但现在工作很好!

  • 将每个测试模块定义为AMD, 使用需要定义(...) 的调用, 并且我即时调用 & amp; 在 SpecRunner. html 中, 一次调用要求(...) 时运行茉莉 :

    require(
    [
    //"test/specs/testSpec1",
    "test/specs/views"
    ],
    function ()
    {
        jasmine.getEnv().updateInterval = 1000;
        var reporter = new jasmine.TrivialReporter();
        jasmine.getEnv().addReporter(reporter);
        ....
        ....
    });
    

    这工作也很好。 测试加载 & amp; 运行, 没有问题。 需要处理所有问题 。

现在,我希望像JSTORTDriver这样的框架能成为我的选手。 我选择JSTD是为了简单、在远程浏览器上测试的能力、代码覆盖支持,但是仍然可以接受其他建议。

JSTestoDriver本身运作良好,我唯一的问题是将JSTD + Jasmine + ReuireJS组合在一起。 最大的问题是,如果我在配置文件中告诉JSTD关于Jasmine/Require测试模块以便加载,我就会发现以下错误:

http://requirejs.org/docs/errors.html#mismatch>>http://requirejs.org/docs/errors.html#mismatch

如果我使用 r.js 将我所有的代码选入一个主js, 组合工作, 包括覆盖, 但覆盖就集中在一个巨大的文件上, 很难分析。 更不用说用50k-line js 文档来仪器, 并且通过 JSTD 进行操作需要很长的时间了 。

我尝试创建一个固定式的js文件, 装载我所有的茉莉花测试模块( amp; 代码模块), 但我会继续回到上述“ 模拟” 错误, 如果我不单独告诉 JSTD 有关每个模块( 装入一个 html/js 固定装置, 真正加载), 他们就不会得到代码覆盖的仪器 。

Has anyone gotten this specific combination to work? Maybe I m asking for too much...

最佳回答

由于 JsTestDriver 和 Liquid.js 正在竞争如何管理文件/ Dependations 的加载, JsTestDriver 在尝试100% 的要求方式( 匿名模块和定义) 时会丢出一个功能。 相反, 您必须命名您的模块并使用要求( ) (...), 函数(...) {... 而不是定义(...) 。 我写了一篇文章, 显示如何整合Q United、 要求和代码覆盖 JSTD : < a href=" http://psedobry.com/js- test- driver- qunit- requirerejs/ " rel=nofolt\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

问题回答

我无法做到这一点,最后利用PhantoomJS来进行我的茉莉测试。http://phantomjs.org/

您是否尝试过在测试中使用要求而不是在测试中定义模块的名称?

https://github.com/podefr/jasmine-reqjs-jstd" rel=“no follow'>https://github.com/podefr/jasmine-reqjs-jstd

编辑 :

我刚刚发布了一个开放源码工具箱,希望它能帮助别人,也帮助我。它是由许多开放源码工具组成的,可以让你从盒子里拿出一个工作需求的主干应用程序。

It provides single commands to run: dev web server, jasmine single browser test runner, jasmine js-test-driver multi browser test runner, and concatenization/minification for JavaScript and CSS. It also outputs an unminified version of your app for production debugging, precompiles your handlebar templates, and supports internationalization. No setup is required. It just works.

它还支持正在测试的无名模块。

http://github.com/davidjnelson/agilejs" rel=“no follow'>http://github.com/davidjnelson/agilejs

查看此复选( < a href=""https://github.com/bredele/appolo" rel="nofol" > Bredele appolo ),该复选框是一个环境,它运行着茉莉BDD字框, 超过 < 坚固的 > 无名模块 , 包含需求。 js 和 JsTestDriver 。

如果您正在开发无匿名模块, 我建议使用 < a href=" https://github.com/podefr" rel=“ nofollow” >podefr 解决方案 。

Olivier公司( Olivier公司)





相关问题
selected text in iframe

How to get a selected text inside a iframe. I my page i m having a iframe which is editable true. So how can i get the selected text in that iframe.

How to fire event handlers on the link using javascript

I would like to click a link in my page using javascript. I would like to Fire event handlers on the link without navigating. How can this be done? This has to work both in firefox and Internet ...

How to Add script codes before the </body> tag ASP.NET

Heres the problem, In Masterpage, the google analytics code were pasted before the end of body tag. In ASPX page, I need to generate a script (google addItem tracker) using codebehind ClientScript ...

Clipboard access using Javascript - sans Flash?

Is there a reliable way to access the client machine s clipboard using Javascript? I continue to run into permissions issues when attempting to do this. How does Google Docs do this? Do they use ...

javascript debugging question

I have a large javascript which I didn t write but I need to use it and I m slowely going trough it trying to figure out what does it do and how, I m using alert to print out what it does but now I ...

Parsing date like twitter

I ve made a little forum and I want parse the date on newest posts like twitter, you know "posted 40 minutes ago ","posted 1 hour ago"... What s the best way ? Thanx.

热门标签