首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MSW在使用testcafe时无法拦截请求,因为该页位于员工范围之外。

MSW在使用testcafe时无法拦截请求,因为该页位于员工范围之外。
EN

Stack Overflow用户
提问于 2022-06-22 12:34:54
回答 1查看 286关注 0票数 0

我有一个反应应用程序,我正在测试与测试咖啡馆(与gherkin测试咖啡馆)。我正在使用垃圾模拟API响应,这是很好的工作。但是,问题是,当对运行MSW的本地版本运行testcafe测试时,我会收到以下消息。

代码语言:javascript
复制
MSW Cannot intercept requests on this page because it's outside of the worker's scope ("http://localhost:1337"). If you wish to mock API requests on this page, you must resolve this scope issue.

 - (Recommended) Register the worker at the root level ("/") of your application.
 - Set the "Service-Worker-Allowed" response header to allow out-of-scope workers.

据我所知,MSW默认使用范围"/“,如果您不设置范围,而且我已经尝试显式设置它,并且似乎没有什么区别。我也尝试过设置标题,但我真的不知道我的意思是什么。我试过"/“

有人知道我该怎么做吗?

EN

回答 1

Stack Overflow用户

发布于 2022-07-27 18:17:31

此错误意味着该工作人员未在根处注册。请注意,服务工作者默认从服务的位置到目录的范围,并且该目录实际上成为它的/。这并不意味着它是您的应用程序的根。

考虑到这一点:

代码语言:javascript
复制
public/
  foo/
    mockServiceWorker.js

工作人员的/作用域将是/foo (考虑到您的站点是从/public提供的)。这可能是你的案子的问题。

要解决这一问题:

  1. 确保您已经在应用程序的根级生成了工作文件。通常情况下,它是/public文件夹。
  2. 检查页面的网址位置,您可以看到这个警告。这是一个浏览器-只有警告,以便您可以检查您的运行时-它包含了最有用的信息来调试这一点。也许Test咖啡馆会将整个应用程序嵌套在某个路径下,这就是破坏工作人员功能的原因。如果是这样的话,要么阅读Test咖啡厅文档以便在根路由上为您的应用提供服务,要么分别配置serviceWorker.scope,以便工作人员知道在哪个路径上提供服务(这可能还需要将辅助脚本代理到Test咖啡馆的位置,作为测试设置的一部分)。

如果没有任何帮助,请向我们提供您尝试过的事情的列表,以及您所收到的结果。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72715626

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档