首页 > 解决方案 > 每次运行测试时,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 是否遗漏了什么?或者这是预期的。谢谢!

标签: ruby-on-railspostgresqlminitestpaper-trail-gem

解决方案


推荐阅读