Javascript 如何将requireJs与envjs一起使用

Javascript 如何将requireJs与envjs一起使用,javascript,unit-testing,requirejs,envjs,Javascript,Unit Testing,Requirejs,Envjs,有人能给我一些关于如何将与requireJs结合的提示吗?BumbleBee将Rhino、JSpec和Ant结合起来,提供了一个“开箱即用”的JavaScript测试工具包。 它对我们非常有用,因为它使一个简单的独立运行成为可能,在ubuntu的终端盒上 我们的整个JS代码都是基于requireJs模块的,看起来,如果我们需要来自envjs/bumblebee/rhine的超出规范的文件,那么所需的模块就不会被加载(这是什么样的东西造成的),这可能是因为requireJs中的异步性 我所做的:

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

我们的整个JS代码都是基于requireJs模块的,看起来,如果我们需要来自envjs/bumblebee/rhine的超出规范的文件,那么所需的模块就不会被加载(这是什么样的东西造成的),这可能是因为requireJs中的异步性

我所做的:

  • 我按照上述说明设置了一个大黄蜂环境
  • 命令“antexamples”运行良好,两个测试用例都成功运行
  • 我将require-jquery.js添加到依赖项中(替换最初设置的jquery.js)(这种方式遵循教程,它在整个web应用程序中成功运行(工作正常)
  • 我编写了一些requireJS模块,在spec文件中需要它们,并很快检测到它们不会被加载(spec文件将被加载,require方法将被执行,但ins内容不会被加载)
  • 然后,我尝试了将requireJS与Node结合起来(这里也提到了rhino)
  • 这些文件可能很有趣:

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

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

    t当我将“定义/要求”零件从示例文件放入等级库文件并检测到,我无法将模块与“要求”一起使用,因为它们不会加载且不存在

    考虑BambleBee示例中的原始等级库文件:

    describe('Greeter', function() {
    
        load('examples/src/greeter.js');
    
        it('greets people', function() {
          expect(example.greeter().greet()).to(eql, 'Hello!');
        });
    });
    
    当我现在使用特定于requireJS的模块时,它们也不会被加载:

    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对我们来说是错误的测试工具?
    非常感谢您的提示!

    这是一个已知的问题。您可以参考以获得envjs和requirejs之间的详细讨论。 我的解决方案是使用Phantomjs运行带有CI的jasmine规范,您可以在

    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!');
        });
    });