typeorm - 在 Typeorm 中使用事务进行测试

标签 typeorm

在 Rails 上,每个测试用例都会创建一个 ActiveRecord 事务,它允许测试所有内容,然后将数据库恢复到原始状态,而不必删除所有表或任何可能影响播种机等的内容。
可以在 Typeorm 上做这样的事情吗?
从我所看到的,交易记录工作方式的主要问题是对另一个方法的调用不会使用创建的交易,但我希望我错过了其他一些实现它的方式。

谢谢!

最佳答案

我和你的期望完全一样。来自 Rails 和 Spring,我希望进行事务测试,但没有直接从 Typeorm 找到解决方案。

在测试期间很难重用相同的事务,因为连接类总是为每个数据库命令或事务创建一个新的 QueryRunner。深入 TypeORM,我发现的解决方案是修补创建查询运行程序的方法,以便在测试期间重用它。我创建了这个库来在几个项目中重用这段代码: https://github.com/viniciusjssouza/typeorm-transactional-tests

关于typeorm - 在 Typeorm 中使用事务进行测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48385604/

相关文章:

postgresql - 我如何将 Postgres DateRange 类型与 TypeOrm 一起使用

postgresql - typeorm原始sql查询是否支持IN子句

typescript - 如何在 Nest 中使用内存数据库和 TypeORM

mongodb - TypeOrm findOne 抛出 'Argument passed in must be a single String of 12 bytes or a string of 24 hex characters'

mongodb - 访问声明的类中的静态方法

typescript - 如何将 NestJS 配置注入(inject) TypeORM 实体?

testing - 在内存数据库中的NestJs的e2e测试中创建了具有相同名称的多个连接

nestjs - TypeORM - 左加入没有 "deletedAt IS NULL"

NestJS/类型ORM : custom repository + multiple databases

typescript - 在 TypeORM 和 MySQL 中返回插入查询的 ID