如何让Mocha识别单元测试

时间:2018-12-06 21:31:52

标签: node.js unit-testing webpack mocha node-sqlite3

我正在开发数据库模块,现在正在尝试通过单元测试。最初,我们使用browserify,并且能够require(sqlite3)require(better-sqlite3)进行测试,而不会出现问题。我们已更改为webpack,并且webpack无法处理所需的本机节点模块,因此我们必须切换到non_webpack_require才能使webpack加载数据库模块。

这很好用,只是摩卡不知道__non_webpack_require__是什么并且未通过测试。因此,我们发现必须通过webpack运行单元测试,才能使所有这些正常工作。

听起来不错,我想我可以用,但是摩卡咖啡现在无法识别任何测试。我运行的命令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

没有通过测试,也没有任何失败测试的记录。如何获得摩卡咖啡以查看单元测试?还是有另一种方法可以解决这个问题?

编辑

我还尝试将所有测试重命名为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,因此该包是唯一的test.js文件,因此mocha会默认在测试文件夹中查找.test。 .js文件。我仍然有同样的问题。

1 个答案:

答案 0 :(得分:1)

在您的项目中安装Mocha之后,您可以指向文件名为arg的节点模块中的Mocha路径,希望对您有所帮助

示例:

$../node_modules/.bin/mocha apiTest.js