所以我正在运行一个非常基本的Jest测试来测试我的一条路由是否返回200。
import request from 'supertest';
import app from './../app';
describe('GET /', () => {
it('should render properly', async () => {
await request(app).get('/api/testing').expect(200);
});
});
这工作正常,然后我配置了 webpack-hot-middleware,它似乎在我导入应用程序的第 2 行中断。
TypeError: setInterval(...).unref is not a function
at createEventStream (node_modules/webpack-hot-middleware/middleware.js:50:17)
at webpackHotMiddleware (node_modules/webpack-hot-middleware/middleware.js:12:21)
at Object.<anonymous> (server/app.js:62:73)
at Object.<anonymous> (server/test/routes.test.js:2:38)
如果我从应用程序中删除以下代码.js测试都运行良好。
app.use(middleware);
app.use(webpackHotMiddleware(compiler));
app.get('*', (req, res) => {
res.write(middleware.fileSystem.readFileSync(path.join(__dirname, '../dist/index.html')));
res.end();
});
有没有人为 webpack-hot-middleware 配置 Jest?我有点迷茫,因为我觉得我已经尝试了一切。
您必须将 testEnvironment Jest 配置选项设置为 node
。 unref()
仅存在于 Node 中.js。
通过在文件顶部添加@jest环境文档块,您可以指定另一个环境用于该文件中的所有测试,请参阅开玩笑文档
/**
* @jest-environment jsdom
*/
import request from 'supertest';
import app from './../app';
describe('GET /', () => {
it('should render properly', async () => {
await request(app).get('/api/testing').expect(200);
});
});