Вам нужно позвонить done
после завершения асинхронной операции, в настоящее время вы звоните done
до того, как у http-сервера появится возможность запуска, и вы никогда не звоните завершено при закрытии http-сервера. Вы можете просто передать done
всем обработчикам асинхронного обратного вызова.
before("starting the server..", function (done) {
httpServer = app.listen(PORT, done) // <- here
})
describe("testing the add endpoint", function () {
console.log("testing the API now!")
it("add endpoints result should evaluate to 10", function (done) {
fetch(`${BASE_URL}add/5/5`)
.then(response => {
expect(response.result).to.be(10)
})
.then(done) // <- here
.catch(done) // <- here
})
})
after("shutting down the server..", function (done) {
httpServer.close(done) // <- here
})
Как вы можете видеть здесь, я НЕ прикрепил оператор then
к функции it
.
fetch(`${BASE_URL}add/5/5`).then(response => expect(response.result).to.be(10)).then(done).catch(done)
Если это не решит вашу проблему, то, скорее всего, есть проблема с маршрутом для /add/5/5
.
Я закончил тем, что прокрутил свой собственный одинокий класс (с отдельным методом, который я описал), источник может быть просмотрен здесь . медиабраузер GPL, но я счастлив за код, который я записал для того файла, чтобы быть Общественным достоянием. Следует иметь в виду, что это использует interop от directshow.net проект, таким образом, необходимо будет очистить ту часть кода с ними.
Этот класс не будет работать на файлы MS DVR, необходимо ввести прямой выставочный фильтр для тех.
Этот проект добьется цели для AVIs: http://www.codeproject.com/KB/audio-video/avifilewrapper.aspx
Что-либо другие форматы, Вы могли бы изучить directshow. Существует несколько проектов, которые могли бы помочь:
http://sourceforge.net/projects/directshownet/
http://code.google.com/p/slimdx/
Существуют некоторые библиотеки в www.mitov.com , который может помочь. Это - универсальная обертка для функциональности Directshow, и я думаю одно из шоу демонстраций, как взять кадр из видеофайла.