我安装了browser-image-compression,作为其功能的一部分,它创建了一个Worker。现在,当我运行jest测试时,我得到以下错误:
Test suite failed to run
ReferenceError: Worker is not defined没有连接到使用浏览器图像压缩的函数的测试。
package.json中的脚本部分包含以下两行
"test": "react-scripts test",
"test:ci": "cross-env CI=true react-scripts test"哦,我还有一个用来设置测试的文件。我是不是应该嘲笑这里的工人?
import { configure } from 'enzyme';
import Adapter from 'enzyme-adapter-react-16';
import '@domain/yup';
configure({
adapter: new Adapter()
});
global.fetch = require('jest-fetch-mock');发布于 2020-01-30 01:17:26
对这个问题的回应很晚,但它可以帮助其他人--但遵循这个comment帮助我解决了这个问题。
如果您将以下内容添加到它自己的文件中-我的文件与名为workerMock.js的setupTests文件位于相同的dir中
export default class Worker {
constructor(stringUrl) {
this.url = stringUrl;
this.onmessage = () => {};
}
postMessage(msg) {
this.onmessage(msg);
}
}然后将该Worker文件导入到您的测试设置文件中并添加window.Worker = Worker。设置文件可能如下所示:
import { configure } from 'enzyme';
import Adapter from 'enzyme-adapter-react-16';
import '@domain/yup';
import Worker from 'path-to-your-worker-file-above';
configure({
adapter: new Adapter()
});
global.fetch = require('jest-fetch-mock');
window.Worker = Worker;希望这能有所帮助
发布于 2020-05-12 14:55:57
一个更好的解决方案是更新‘浏览器-图像-压缩’包到最新版本,这对我很有帮助。
https://stackoverflow.com/questions/58289542
复制相似问题