是否有可能运行JS测试驱动程序测试使用requirejs模块?(Is it possible to

2019-09-29 11:06发布

我一直在尝试使用requirejs和JS-测试驾驶员的旁边,我也没见过得到它的工作。

我在根目录的最低配置是这样的:

server: http://localhost:9876

load:
 - src/main/resources/web/resources/vendor/requirejs/require.js

test:
 - src/test/js/*.js

A “的src /主/ JS / greeter.js” 文件定义一个傻模块:

define(function(require) {

  myapp = {};

  myapp.Greeter = function() {
  };

  myapp.Greeter.prototype.greet = function(name) {
    return "Hello " + name + "!";
  };

  return myapp;
});

我试图让需要加载一个“的src /测试/ JS / greeterTest.js”的招待员模块:

GreeterTest = TestCase("GreeterTest");

require.configure({ ???? });
require([ "src/main/js/greeter" ], function(myapp) {

  GreeterTest.prototype.testGreet = function() {
    var greeter = new myapp.Greeter();
     assertEquals("Hello World!", greeter.greet("World"));
    };

});

每当我跑,我得到一个错误,因为在创建时,迎宾MYAPP没有定义。

那么,有没有一种方法,我可以配置需要在这种情况下? 我试过了 :

  • 在的baseUrl属性设置为类似文件:/// ....给文件的位置
  • 使用网关配置代理该requirejs可能做的请求(虽然我没有服务器上运行,以服务js文件,所以我又不得不使用file:///)

有没有别的东西,我应该尝试?

谢谢

Answer 1:

原来,这是可能的,但不良记录:

  • JS测试驱动器有一个“服务”的设置,可以让测试服务器响应静态文件
  • 一次服,这些文件可在本地主机:42442 /测试/ XXXX(“测试”前缀从未mentionned,除了在文档页面评论低点)。

所以这工作原理:


server: http://localhost:9876

load:
  - src/main/resources/web/resources/vendor/requirejs/require.js

test:
  - src/test/js/*.js

serve:
  - src/main/js/*.js

而requirejs必须配置如下:


require({
    baseUrl : "/test/src/main/js"
}, [ "greeter" ], function(myapp) {

    GreeterTest = TestCase("GreeterTest");

    GreeterTest.prototype.testGreet = function() {
        var greeter = new myapp.Greeter();
        assertEquals("Hello World!", greeter.greet("World"));
    };

});

注意 :

  • 测试前/
  • 事实上,你必须重用“的src / main / JS”的一部分; 我想链接到的事实,我jsTestDriver配置位于同一水平“SRC”文件夹,如果放在否则它可能需要一些调整。


文章来源: Is it possible to run js-test-driver tests that uses requirejs modules?