首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在envjs中使用requireJs

如何在envjs中使用requireJs
EN

Stack Overflow用户
提问于 2012-06-26 12:18:04
回答 1查看 712关注 0票数 0

有人能给我一些关于如何将大黄蜂requireJs相结合的一些提示吗?BumbleBee结合了Rhino、JSpec、恩维杰和Ant,提供了一个“开箱即用”的JavaScript测试工具包。它对我们非常有用,因为它使一个简单的独立运行在ubuntu盒的终端上成为可能。

我们的整个基于需求JS模块的JS代码,如果超出了规范的要求,就不会加载所需的模块--来自envjs/大黄蜂/莱茵河的文件(可能要对此负责),这可能是由于需求JS中的异步性。

我所做的:

  1. 我按照上面提到的github网站上的说明建立了一个大黄蜂环境
  2. 命令"ant示例“运行良好,两个测试用例都成功运行。
  3. 我在依赖项中添加了require jquery.js (替换最初设置的jquery.js)(这种方式遵循教程“如何将jQuery与requireJS结合使用” --它成功地在整个web应用程序中运行(并且运行良好)
  4. 我编写了一些需求ins模块,在规范文件中要求它们,并且很快地检测到它们不会被加载(规范文件将被加载,请求-方法将被执行,而不是ins内容)。
  5. 然后我利用这些设置-提示将requireJS和Node结合起来(这里也提到了犀牛)。

这些文件可能很有趣:

of /bumblebee.js(我认为它是整个测试套件的切入点):

代码语言:javascript
复制
load('dependencies/js/env.rhino.1.2.js');
window.location="examples/fixture/fixture.html";

load('dependencies/js/jspec/jspec.js');
load('dependencies/js/require-jquery.js');

var runSpec = function(spec) {
    JSpec.exec(spec);
};


define(function(require) {
    console.log("A1");
    var dep = require('dependency');

    //The value returned from the function is
    //used as the module export visible to Node.
    return function () {};
});

require(['dependency'], function(d){
    console.log("A2");
} );


console.log("A3");

var specs = arguments;


jQuery.each(specs, function(index, spec) {
    runSpec(spec);
});

JSpec
  .run({ reporter: JSpec.reporters.Terminal, fixturePath: 'spec/fixtures' })
  .report();

只有"A3“才会被打印到控制台,基于需求的代码永远不会在这里执行。

然后,我将定义/要求部分放入规范中--示例文件中,并检测到,我也无法使用require模块,因为它们不会加载,也不会预先发送。

考虑到来自BambleBee的原始规范文件-示例:

代码语言:javascript
复制
describe('Greeter', function() {

    load('examples/src/greeter.js');

    it('greets people', function() {
      expect(example.greeter().greet()).to(eql, 'Hello!');
    });
});

当我现在使用特定于requireJS的模块时,也不会加载它们:

代码语言:javascript
复制
describe('Greeter', function() {

    load('examples/src/greeter.js');

    require(['dependency'], function(d){
        // do something with D...
        console.log("This will **NEVER** be printed");
    } );

    console.log("This **WILL** be printed");
    it('greets people', function() {
      expect(example.greeter().greet()).to(eql, 'Hello!');
    });
});

问题

是否有一种将Envjs与requireJS相结合的方法,还是EnvJS是我们的错误测试工具?非常感谢您的提示!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-08 02:52:03

这是一个众所周知的问题。您可以参考https://github.com/envjs/env-js/issues/7来获得envjs和requirejs之间的详细讨论。我的解决方案是使用Phantomjs运行带有CI的茉莉规范,您可以在https://github.com/xiaocong/xiaocong.github.com/tree/master/examples/coffee-bbb-amd-backbone-rest-contacts上找到示例项目。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11207174

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档