unit-testing - 使用 knex 和 mocha 永远运行测试
问题描述
所以我使用带有 Node 的 Knex 模块来连接我的数据库,这很棒,可以满足我的一切需求。
但是,当我在 mocha 中运行单元测试时,即使单元测试完成,该过程也会继续运行。
所以我看到其他人有类似的问题,它永远运行,他们的解决方案是使用 knex.destroy()。我试过这个,它适用于一个文件,但我运行我的单元测试,比如 npm run test* 它将运行任何文件。所以一旦第一个测试运行破坏,以下测试都会失败。
我只是想知道这是否是一个仍在运行的未解决承诺的案例?还是配置错误的knex?
我像这样配置knex..
'use strict';
const
config = require('../../config/config');
module.exports = require('knex')({
client: 'mysql',
connection: {
host: config.get('db.host'),
user: config.get('db.user'),
password: config.get('db.password'),
database: config.get('db.database'),
multipleStatements: true
},
pool: {
min: 0,
max: 5,
// debug: true
});
当我需要一个数据库项目时,我只需用 db.insert( ... ) 等调用它。
我不需要获取 Knex 的实例感觉有点不对劲?
希望有人能给我一些指示吗?
提前致谢。授予
解决方案
我对 knex 0.15.2
、 pg7.4.3
和 mocha有同样的问题5.2.0
。knex.destroy()
在每种测试方法之后按照推荐的方法解决它:
let knex: Knex
beforeEach(async () => {
knex = Knex({
client: 'pg',
connection: config.postgres.connection_string,
debug: config.postgres.debug,
acquireConnectionTimeout: config.postgres.connection_timeout
})
})
afterEach(async () => {
await knex.destroy()
})
推荐阅读
- angular - Asp mvc 5 angular 9 相对路径问题与子目录中的 pwa
- python - 如何正确格式化pyspark日志文件
- mysql - knex & MYSQL js 错误 ER_CANNOT_ADD_FOREIGN: 无法添加外键约束
- javascript - Angular ngFor 没有 let item of items 语法
- apache-spark - 在 pyspark 中操作数组时出现 TypeError
- hyperledger-fabric - “身份已过期”在调用链码时发生
- c# - Unity3d中的轨迹渲染器碰撞检测
- google-bigquery - Bigquery 并行读写同时进行
- c++ - 错误,“include/Trading_GenericTemplate.h:37: 错误:预期构造函数、析构函数或 â=â 标记之前的类型转换”
- nuxt.js - 无法访问 nuxt-i18n 信息