为什么在React/GraphQL应用程序上运行Cypress会在正常浏览时返回网络错误';T

为什么在React/GraphQL应用程序上运行Cypress会在正常浏览时返回网络错误';T,graphql,cypress,grandstack,Graphql,Cypress,Grandstack,我有一个React/apollo客户端和一个基于GRANDStack的apollo/neo4j后端应用程序。 我的React应用程序在localhost:3000上运行,我的GraphQL在localhost:4001/GraphQL上运行,它们之间的通信不会失败。所有这些都在应用程序中运行良好(启用了CORS),但我想用Cypress实现测试 我是否应该期望Cypress能够毫无错误地观察React和GraphQL之间的流?还是这超出了它的能力 我所尝试的: 我设置了Cypress并运行了以下

我有一个React/apollo客户端和一个基于GRANDStack的apollo/neo4j后端应用程序。 我的React应用程序在localhost:3000上运行,我的GraphQL在localhost:4001/GraphQL上运行,它们之间的通信不会失败。所有这些都在应用程序中运行良好(启用了CORS),但我想用Cypress实现测试

我是否应该期望Cypress能够毫无错误地观察React和GraphQL之间的流?还是这超出了它的能力

我所尝试的: 我设置了Cypress并运行了以下测试:

it("Opens myPlan.", function() {
    cy.visit("localhost:3000/myPlan");
    cy.wait(6000);
});
在第一次cypress安装时,我的站点已加载。应用程序要做的第一件事是graphql查询一些值,并基于这些值创建一个下拉框。虽然此graphql请求和所有其他graphql请求在浏览器中都能正常工作,但对于相同的代码,我在cypress中得到了
“{”graphQLErrors:[],“networkError:{”name:“ServerParseError”,“response:{}”,“statusCode:”404,“bodyText:“}”,“message:“网络错误:JSON输入意外结束”}
错误

可能是因为有两个端点,而cy.visit只允许一个端点。我尝试禁用ChromeWebSecurity并尝试了“访问控制允许原始主机”插件

编辑:我发现有人认识Cypress,他们建议添加:

"proxy": "http://localhost:4001/",
"proxy": "http://localhost:4001/",

到我的客户端配置。这避免了多端口问题,Cypress也能正常工作。

编辑:我找到一位了解Cypress的人,他们建议添加:

"proxy": "http://localhost:4001/",
"proxy": "http://localhost:4001/",

到我的客户端配置。这避免了多端口问题,Cypress也可以工作。

您需要在此处、您的问题中以及任何第三方站点上发布一条消息。嗯,公平地说,这主要不是关于代码的问题,而是关于Cypress通过两个端口处理站点的能力的问题。也许我可以这样改写它。GRANDstack的最小可复制配置是一页又一页的代码,但这让我想到在一个普通的GRANDstack模板上测试它并向后工作。不要在标题中添加“已解决”。答案不应该是问题的一部分。相反,把解决方案作为你自己问题的答案。