我正在使用 bash 脚本(特别是bats)来测试我编写的一些代码。
因为我想避免干扰测试,所以我正在使用设置和拆卸功能(bats 提供),如下所示:
setup() {
sqlite3 test.db "SAVEPOINT pre_test"
}
teardown() {
sqlite3 test.db "ROLLBACK TO SAVEPOINT pre_test"
}
不幸的是,回滚时,我得到:
Error: no such savepoint: pre_test
但是,如果我在 SQLite 中启动一个交互式会话,我可以按照我的预期使用保存点。我想这意味着命令行程序退出后所有保存点都被遗忘了。
有没有办法解决这个问题?