我有 2 个示例 Mocha Web 测试,我正在尝试使用 Velocity 运行它们。
出于某种原因,/tests/mocha/client 文件夹下的客户端测试永远不会执行,而/tests/mocha/server 文件夹下的服务器端测试运行良好。
这是我的项目todos的结构( meteor 示例项目)
想法?
最佳答案
我遇到了这个问题,它与安装浏览器策略包有关。
您需要做的是查看 JavaScript 控制台,例如在 Chrome 开发者工具中,查看控制台选项卡。 (Apple 键 + 选项键 + 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
我猜您现在看到您的客户端测试正在运行吗?就我而言,我一删除浏览器策略包就看到了它们。基本上,此时您需要做的是调整应用程序的浏览器策略设置,以允许 iframe 用于 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");
}
关于meteor - Mocha-web 客户端测试未使用 Velocity for Meteor 应用程序运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26866008/