2016-07-26 152 views
0

是否有可能在事务中包装每个后续测试并在每次测试结束时回滚?推荐使用sequelize实现这一点的方法是什么?续集交易测试

而且将它的工作,如果被测代码也打开一个交易?(嵌套事务)

感谢

回答

1

我不相信Sequelize支持嵌套事务。

听起来好像你正试图保持测试之间的隔离,以便一次测试中的变化不会影响另一次测试。我的团队通过在beforeEach声明中填充测试数据库中的夹具数据并截断afterEach声明中受影响的表格来完成此操作。使用这种方法测试运行相当快。

+0

我们也在使用这种方法。在事务中封装测试的原因是为了防止我们在每次测试中都截断所有表以清理数据库。由于我们的测试套件相当大,我们已经确定截断是每次测试中花费最多时间的部分。 – user1990009

+0

也许你已经这样做了,但是你可以尝试缩小清理步骤的重点,并按照“describe”块进行配置,以便截断受每个测试块影响的少数几个表。例如,如果你正在测试你的'User'模型,那么在这个文件中添加一个'afterEach',这个文件只会截断'User'表。 –