检测使用 Velocity 测试 Meteor 应用时代码是否在镜像中运行



我有一个简单的Meteor应用程序。我想在服务器端定期运行一些代码。我需要轮询远程站点以获取 XML 订单。

它看起来像这样(咖啡脚本):

unless process.env.ORDERS_NO_FETCH
    Meteor.setInterval ->
        checkForOrder()
    , 600000

我正在使用速度进行测试。我不希望此代码在运行测试的镜像实例中运行(否则它会窃取我的 XML 订单,我不会在实际实例中看到它们)。因此,为此,我想知道如何判断服务器代码是否在测试环境中运行,以便避免设置定期检查。

编辑 我意识到我错过了在测试中伪造我的一个服务器调用,这就是为什么我的测试代码从真实服务器获取其中一个 XML 订单的原因。所以,这可能不是问题。我还不确定服务器代码的测试是如何运行的,以及服务器代码是否在镜像中运行(这是仅客户端的概念)?

使用 mocha/jasmine 集成测试时,服务器和客户端都在镜像中运行。

如果你想知道你是否在镜子里,你可以使用:

Meteor.call('velocity/isMirror', function(err, isMirror) { if (isMirror) { // do something } });

此外,在服务器上,您可以使用:

process.env.IS_MIRROR

你已经让假货起作用了,这是正确的方法。

相关内容

最新更新