create-react-app:使用代理进行 Jest 测试
create-react-app: use a proxy for Jest tests
我想为我的 React Jest 测试使用实际的 API。因为测试环境是JSDom,所以不能跨域请求。在开发中,这很容易通过在 package.json 文件中指定代理来解决,但是这不适用于测试套件 运行 通过:npm test
.
我知道可以在使用 (see docs):
创建新的 JSDom 实例时指定代理
const resourceLoader = new jsdom.ResourceLoader({
proxy: "http://127.0.0.1:9001",
});
现在我找不到在我的应用程序中使用它的方法,它是使用 create-react-app (CRA) 创建的...所以我的问题是,当 运行通过 CRA 应用程序开玩笑?
谢谢!
我刚刚知道如何做到这一点。有一个 Jest 配置选项设置 JSDom 实例的 url:"testURL"。但是,在 package.json 中指定它时它将不起作用,例如:
jest: {
"testURL": "http://localhost:4000"
}
有效的方法是直接在 NPM 脚本中指定选项。这将使 NPM 测试脚本看起来像:
"test": "react-scripts test --testURL=http://localhost:4000"
希望对遇到同样问题的人有所帮助
我想为我的 React Jest 测试使用实际的 API。因为测试环境是JSDom,所以不能跨域请求。在开发中,这很容易通过在 package.json 文件中指定代理来解决,但是这不适用于测试套件 运行 通过:npm test
.
我知道可以在使用 (see docs):
创建新的 JSDom 实例时指定代理const resourceLoader = new jsdom.ResourceLoader({
proxy: "http://127.0.0.1:9001",
});
现在我找不到在我的应用程序中使用它的方法,它是使用 create-react-app (CRA) 创建的...所以我的问题是,当 运行通过 CRA 应用程序开玩笑?
谢谢!
我刚刚知道如何做到这一点。有一个 Jest 配置选项设置 JSDom 实例的 url:"testURL"。但是,在 package.json 中指定它时它将不起作用,例如:
jest: {
"testURL": "http://localhost:4000"
}
有效的方法是直接在 NPM 脚本中指定选项。这将使 NPM 测试脚本看起来像:
"test": "react-scripts test --testURL=http://localhost:4000"
希望对遇到同样问题的人有所帮助