ruby-on-rails - 每次运行测试时,PaperTrail 和 Rails Minitest 都会增加新创建版本的 id
问题描述
我正在开发一个 Rails 应用程序。
我安装了 PaperTrail 并且我正在使用 Sqlite,但我正在尝试将我的应用程序切换为使用 PostgreSQL。过渡似乎进展顺利,但我注意到我的测试失败了。这里是。
test 'expects audit log page' do
with_versioning do
# Arrange
user = users(:existing_investor)
user.update(first_name: 'Vanilla')
# Act
get spikes_audit_log_url
p PaperTrail::Version.where(event: "update").last # Prints out a new paper trail version. There is always only 1 available
# Assert
assert_response :success
assert_select 'h1', 'Audit Log'
assert_select 'td', text: '1' # This fails it keeps incrementing, the text is supposed to be the paper trail version id
end
end
如您所见,我正在尝试转到一个页面,在该页面上我有纸质版本的表格视图,特别是那些事件是更新的页面。我期望它td
不是1
创建的纸质版本的 ID。我已经验证在断言时我的测试数据库中只有 1 个纸质版本。但是,每当我运行测试时,ID 都会增加。似乎它知道以前的版本已经存在然后被销毁了。
我希望我有道理让我知道是否需要清理任何东西。我知道如何让测试通过,但我想知道是否预计 ID 会不断增加?我希望每当运行测试时,数据库会被擦除,固定装置会被创建,然后每当我创建一个新的纸质跟踪版本时,它ID
就会被擦除,1
但事实并非如此。
将我的应用程序更改为 PostgreSQL 是否遗漏了什么?或者这是预期的。谢谢!
解决方案
推荐阅读
- python - How to replace character string within a string with python?
- python - How to get node parameter in Houdini with Python
- sql - Setting value of boolean columns based on existence of value in set
- google-apps-script - 谷歌应用脚本驱动服务下载作为功能?
- c++ - 二维数组中的 Memset
- python-3.x - 无法从项目的根目录导入名称
- laravel - How to filter some database records with Join in Laravel
- pandas - Pandas 中与 Groupby 的自相关
- javascript - 为什么我的第二个 javascript 承诺调用返回与第一个相同的值?
- python - Download CSV File in Flask Best Practice