Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在mocha测试中获取sails应用程序的运行时url_Javascript_Node.js_Socket.io_Sails.js_Mocha.js - Fatal编程技术网

Javascript 如何在mocha测试中获取sails应用程序的运行时url

Javascript 如何在mocha测试中获取sails应用程序的运行时url,javascript,node.js,socket.io,sails.js,mocha.js,Javascript,Node.js,Socket.io,Sails.js,Mocha.js,我知道sails.getBaseUrl和它的存在。在bootstrap.test.js中执行sails lift时,我指定了一个端口:1337sails.getBaseUrl()返回http://localhost:1337。然后,我使用mocha运行测试(如果有必要,可以从WebStorm内部运行)。同时,我可以在航站楼进行sails提升,并在http://localhost:1337。两者似乎都运行良好,没有端口冲突 那么,在运行测试时,mocha在什么位置运行sails应用程序?如果您没有

我知道sails.getBaseUrl
和它的存在。在
bootstrap.test.js中执行
sails lift
时,我指定了一个
端口:1337
sails.getBaseUrl()
返回
http://localhost:1337
。然后,我使用mocha运行测试(如果有必要,可以从WebStorm内部运行)。同时,我可以在航站楼进行
sails提升
,并在
http://localhost:1337
。两者似乎都运行良好,没有端口冲突


那么,在运行测试时,mocha在什么位置运行sails应用程序?

如果您没有将其设置为其他位置,则您的sails应用程序将在端口1337上启动。我会检查您是否没有在某个位置设置一个
端口
环境变量,一个或另一个应用程序正在使用该变量覆盖默认值。除非其中一个应用程序在Docker这样的虚拟机上运行,否则它们不可能同时在端口1337上运行而不发生冲突,因此您的测试可能会自动失败,或者它们正在运行另一个端口


在Sails v0.12.x和Sails v1.0中,HTTP服务器作为
Sails.hooks.HTTP.server
提供,因此您应该能够使用
Sails.hooks.HTTP.server.address().port
检查应用程序正在侦听的端口。问题是,我们的测试是执行
Sails加载
,而不是
Sails提升
。根据和文档,我发现端口绑定不是在
sails load
中完成的。因此,我只是添加了额外的代码来绑定/解除绑定端口,作为测试生命周期的一部分

before(function (done) {
    server = sails.hooks.http.server.listen(sails.config.port, function (err) {
      if (err) {
        return done(err);
      }
      return done();
    });
  });

after(function (done) {
    server.close();
    done();
  });

为什么在测试中要这样做而不是只做
.lift()