是否可以运行使用requirejs模块的js测试驱动程序测试?

是否可以运行使用requirejs模块的js测试驱动程序测试?,requirejs,js-test-driver,Requirejs,Js Test Driver,我一直在尝试使用和沿边,我看不到它的工作 我在根目录中有这样一个最小配置: server: http://localhost:9876 load: - src/main/resources/web/resources/vendor/requirejs/require.js test: - src/test/js/*.js “src/main/js/greeter.js”文件定义了一个愚蠢的模块: define(function(require) { myapp = {};

我一直在尝试使用和沿边,我看不到它的工作

我在根目录中有这样一个最小配置:

server: http://localhost:9876

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

test:
 - src/test/js/*.js
“src/main/js/greeter.js”文件定义了一个愚蠢的模块:

define(function(require) {

  myapp = {};

  myapp.Greeter = function() {
  };

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

  return myapp;
});
我试图让require在“src/test/js/greeterTest.js”中加载greeter模块:

每当我运行此程序时,都会出现一个错误,因为在创建迎宾员时没有定义myapp

那么,在这种情况下,有没有办法配置require?我试过:

  • 将baseUrl属性设置为file:///.... 提供文件的位置
  • 使用网关配置代理requirejs可能执行的请求(尽管我没有运行服务器来提供js文件,所以我不得不再次使用file://)
还有什么我应该试试的吗


谢谢

事实证明这是可能的,但记录得很差:

  • js测试驱动程序有一个允许测试服务器响应静态文件的设置
  • 一旦送达,这些文件就可以在localhost:42442/test/xxxx上获得(除了在文档页面的注释下方,从未提及“test”前缀)
所以这是可行的:


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”文件夹位于同一级别有关,并且 如果放置在其他位置,可能需要进行一些调整

结果证明这是可能的,但记录得很差:

  • js测试驱动程序有一个允许测试服务器响应静态文件的设置
  • 一旦送达,这些文件就可以在localhost:42442/test/xxxx上获得(除了在文档页面的注释下方,从未提及“test”前缀)
所以这是可行的:


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”文件夹位于同一级别有关,并且 如果放置在其他位置,可能需要进行一些调整