Mocha web客户端测试未使用Velocity for Meteor应用程序运行

Mocha web客户端测试未使用Velocity for Meteor应用程序运行,meteor,mocha.js,velocity,Meteor,Mocha.js,Velocity,我有两个样本Mocha web测试,我正试图使用Velocity运行它们 出于某种原因,/tests/mocha/client文件夹下的客户端测试永远不会执行,而/tests/mocha/server文件夹下的服务器端测试运行正常 下面是我的项目todos(meteor示例项目)的结构 客户 解放党 包裹 服务器 测验 摩卡咖啡 客户 服务器 想法?我遇到了这个问题,它与安装浏览器策略包有关 您需要做的是查看JavaScript控制台,例如在Chrome开发者工具中,查看控制台选项卡

我有两个样本Mocha web测试,我正试图使用Velocity运行它们

出于某种原因,/tests/mocha/client文件夹下的客户端测试永远不会执行,而/tests/mocha/server文件夹下的服务器端测试运行正常

下面是我的项目todos(meteor示例项目)的结构

  • 客户
  • 解放党
  • 包裹
  • 服务器
  • 测验
    • 摩卡咖啡
      • 客户
      • 服务器

想法?

我遇到了这个问题,它与安装浏览器策略包有关

您需要做的是查看JavaScript控制台,例如在Chrome开发者工具中,查看控制台选项卡。(苹果键+选项键+I)。您应该看到如下错误:

拒绝帧“
http://localhost:5000/?mocha=true因为它
违反以下内容安全策略指令:“默认src
“自我”。请注意,没有显式设置“frame src”,因此
“默认src”用作回退

出于安全目的,您仍应安装此软件包,但为了进行测试,请执行以下操作:

meteor remove browser-policy
meteor
我猜你现在看到你的客户机测试在运行?在我的例子中,我一删除浏览器策略包就看到了它们。基本上,此时您需要做的是调整应用程序的浏览器策略设置,以允许iframe for mocha,例如
http://localhost:5000
,但仅适用于开发环境

更改代码之前,请放回浏览器策略包

meteor add browser-policy
现在更改浏览器策略设置:

  // Your browser policy settings, e.g.
  // BrowserPolicy.content...

  // Need to run this at the end so that it overrides normal broswer policy settings.
  if (process.env.NODE_ENV === "development")
  {
    console.log("In development mode. Allowing all framing so that mocha-web can run for tests.");
    this.BrowserPolicy.content.allowOriginForAll("localhost:*");
    this.BrowserPolicy.content.allowConnectOrigin("ws://localhost:5000");
    this.BrowserPolicy.content.allowConnectOrigin("ws://localhost:3000");
  }

浏览器策略设置存储在哪里?只需在服务器上使用的脚本中配置即可。有关更多信息,请参阅软件包,