proxy - create-react-app:使用代理进行 Jest 测试
问题描述
我想为我的 react Jest 测试使用一个实际的 API。因为测试环境是JSDom,所以不能跨域请求。在开发中,这很容易通过在 package.json 文件中指定代理来解决,但这不适用于通过以下方式运行的测试套件:npm test
.
我知道在创建新的 JSDom 实例时可以使用(参见文档)指定代理:
const resourceLoader = new jsdom.ResourceLoader({
proxy: "http://127.0.0.1:9001",
});
现在我找不到将它与我的应用程序一起使用的方法,该应用程序是使用 create-react-app (CRA) 创建的...所以我的问题是,在通过 CRA 应用程序运行 Jest 时是否有某种方法可以指定代理?
谢谢!
解决方案
我刚刚发现如何做到这一点。有一个 Jest 配置选项可以设置 JSDom 实例的 url:“testURL”。但是,在 package.json 中指定它时它将不起作用,例如:
jest: {
"testURL": "http://localhost:4000"
}
起作用的是直接在 NPM 脚本中指定选项。这将使 NPM 测试脚本看起来像:
"test": "react-scripts test --testURL=http://localhost:4000"
希望它可以帮助有同样问题的人
推荐阅读
- c# - Visual Studio MacOS - 如何排除异常情况
- webpack - 如何“编译”一个模块?
- python - 检查一个对象是否是来自 python 的 boost python 对象
- python - 'RootLayout' 对象没有属性 'image'
- python - 将html中的文本直接提取到变量中
- html - 如何在响应模式下修复此导航?
- python - 是否可以让“type”的输出返回不同的类?
- ruby - 如何在 Ruby 的 IO 流中插入字符串?
- google-apps-script - 错误原因:您无权调用 SpreadsheetApp.openById。所需权限:
- amazon-ec2 - 从 Ray.remote 并行 Python 3 函数返回值的问题