Я запускаю модульное тестирование, которое проходит через массив конечных точек и тестирует каждую из них. Поскольку их более 10, я получаю следующую ошибку:
(узел: 50021) MaxListenersExceededWarning: Возможна утечка памяти EventEmitter. Добавлено 11 близких слушателей. Используйте emitter.setMaxListeners () для увеличения лимита
Теперь я уже обнаружил, что мне нужно установить maxListeners на значение, превышающее 10. Я хотел бы установить для него количество конечных точек, которые я имею тестирование. Вот как мой код выглядит в настоящее время:
const assert = require('assert')
const request = require('supertest')
const { EventEmitter } = require('events')
const endpointList = [
'endpoint1',
'endpoint2',
'endpoint3',
...
]
describe('test all endpoints', function () {
it('test each endpoint', function () {
return Promise.all(
endpointList.map(endpoint => {
return request(server)
.get(endpoint)
.then(res => {
// do stuff
assert.ok(something)
})
})
)
})
})
Теперь я намерен установить maxListeners как длину массива endpointList
:
...
const emitter = new EventEmitter()
emitter.setMaxListeners(endpointList.length)
...
Теперь возникает вопрос: где я должен это сделать? Это за пределами блока? Внутри раньше? В другом месте? Я попробовал первые два предложения, но предупреждение все еще появляется. Так, где это должно быть сделано?