javascript - 开玩笑地为所有测试创建单个 knex 连接池
问题描述
我knex
在我的项目中使用并尝试用它(使用jest
)编写测试。我想在每次测试之前和每次测试之后执行一些脚本,因此每个测试都将在 db 中的相同数据上运行。
我尝试使用 knex 创建一个全局连接池,并在测试设置中执行脚本。问题是当我在不同describe
范围内进行测试时。
例如,假设我有 2 个测试,每个测试都在不同的describe
范围内
import { connection } from './global-setup.ts'
describe('first', () => {
beforeEach( async () => {
await connection.raw(...)
}
afterEach( async () => {
await connection.raw(...)
}
it('test1', () => {...})
}
和第二次测试一样。结果是 beforeEach 中的脚本并不总是运行,因此第二个测试有时会通过,有时会失败。
我确实注意到连接池每次都会针对不同的描述范围进行初始化,我认为这是问题的原因。(如果我将第一个和第二个测试放在同一个描述范围内,它们总是通过)
我怎样才能解决这个问题?或者如何为所有描述测试创建一个连接池?
解决方案
推荐阅读
- node.js - 如何使用 nodejs 获取 kubernetes pod 指标
- node.js - 如何使用nodejs删除重复的csv文件行
- python - 如何在主机上存储容器修改
- flutter - 如何通过 Dart 中的 onTap 函数将值传递到另一个屏幕?
- angular - Angular *ngIf 不能与 ng-template 一起使用
- reactjs - react.js 错误**在现有状态转换期间无法更新**
- javascript - 使用 javascript 从本地存储中删除匹配的密钥对象
- php - WPBakery Page Builder 扩展交互式文本
- html - 在背景图像上移动表格时遇到问题
- opencv - 磨损碎片图像处理