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

时间:2014-11-11 13:26:18

标签: meteor mocha velocity

我有2个样本Mocha网络测试,我试图使用Velocity运行。

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

这是我的项目待办事项(流星示例项目)的结构

  • 客户
  • LIB
  • 服务器
  • 测试
    • 摩卡
      • 客户端
      • 服务器

想法?

1 个答案:

答案 0 :(得分:2)

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

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

  

拒绝框架&{39; http://localhost:5000/?mocha=true'因为它   违反了以下内容安全策略指令:" default-src   '自'&#34 ;.请注意' frame-src'没有明确设定,所以   '默认-SRC'被用作后备。

出于安全考虑,您仍应安装此软件包,但对于测试,请执行以下操作:

meteor remove browser-policy
meteor

我猜你看到你的客户端测试现在正在运行?在我的情况下,我一删除浏览器策略包就看到了它们。基本上,此时您需要做的是调整应用程序的浏览器策略设置,以允许用于mocha的iframe,例如: 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");
  }