Я работаю над модулем базы данных, и сейчас я пытаюсь заставить модульные тесты пройти.Первоначально мы использовали browserify, и мы смогли require(sqlite3)
или require(better-sqlite3)
без проблем в тестах.Мы перешли на веб-пакет, и веб-пакет не обрабатывает наличие собственных модулей узлов, поэтому нам пришлось переключиться на non_webpack_require , чтобы получить веб-пакет для загрузки модулей базы данных.
Это работаетхорошо, кроме мокко, понятия не имеет, что такое __non_webpack_require__
, и не проходит тесты.Итак, мы выяснили, что нам нужно запустить наши модульные тесты через веб-пакет, чтобы все это заработало.
Звучит хорошо, и я думаю, что оно работает, однако mocha не распознает ни одного из тестов.Команда, которую я запускаю webpack test/*.test.js -o test/testBundle.js --module-bind js=node-loader -target node && mocha test/testBundle.js --file ../../systemjs/dist/system.js --require @babel/register
.
Вывод
Asset Size Chunks Chunk Names
testBundle.js 3.58 KiB 0 [emitted] main
Entrypoint main = testBundle.js
[0] (webpack)/buildin/global.js 279 bytes {0} [built]
[1] (webpack)/buildin/module.js 279 bytes {0} [built]
[2] multi ./test/better-sqlite3.test.js ./test/catena-database.test.js ./test/idatabase.test.js ./test/index.test.js ./test/nedb.test.js ./test/sqlite-sync.test.js 88 bytes {0} [built]
[3] ./test/better-sqlite3.test.js 325 bytes {0} [built]
[4] ./test/catena-database.test.js 327 bytes {0} [built]
[5] ./test/idatabase.test.js 315 bytes {0} [built]
[6] ./test/index.test.js 307 bytes {0} [built]
[7] ./test/nedb.test.js 305 bytes {0} [built]
[8] ./test/sqlite-sync.test.js 319 bytes {0} [built]
WARNING in configuration
The 'mode' option has not been set, webpack will fallback to
'production' for this value. Set 'mode' option to 'development' or
'production' to enable defaults for each environment.
You can also set it to 'none' to disable any default behavior. Learn
more: https://webpack.js.org/concepts/mode/
0 passing (1ms
Нет прохождения тестов и нет записей о неудачных тестах.Как я могу заставить мокко увидеть юнит-тесты?Или есть другой способ, которым я могу пойти по этому поводу?
EDIT
Я также попытался переименовать все тесты в something.a.js
и затем запустить webpack test/*.a.js -o test/testBundle.test.js --config test/webpack.config.js && mocha --file ../../systemjs/dist/system.js --require @babel/register
, чтобыbundle - единственный файл test.js, поэтому mocha по умолчанию ищет в папке test файлы .test.js.У меня все еще та же проблема.