我有2个样本Mocha网络测试,我试图使用Velocity运行.
出于某种原因,/ tests / mocha / client文件夹下的客户端测试永远不会执行,而/ tests / mocha / server文件夹下的服务器端测试运行正常.
这是我的项目待办事项的结构(流星示例项目)
>客户
> lib
>包裹
>服务器
>测试
>摩卡
>客户
>服务器
想法?
最佳答案 我遇到了这个问题,这与安装浏览器策略包有关.
您需要做的是查看JavaScript控制台,例如在Chrome开发者工具中,查看控制台选项卡. (Apple Key选项键I).你应该看到这样的错误:
Refused to frame ‘
http://localhost:5000/?mocha=true
‘ because it
violates the following Content Security Policy directive: “default-src
‘self’”. Note that ‘frame-src’ was not explicitly set, so
‘default-src’ is used as a fallback.
出于安全考虑,您仍应安装此软件包,但对于测试,请执行以下操作:
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");
}