水豚错误ActiveRecord :: StatementInvalid:SQLite3 :: BusyException:数据库已锁定

我正在测试javascript,尝试通过ajax表单将数据提交给DB时收到以下错误。

ActiveRecord::StatementInvalid:         ActiveRecord::StatementInvalid: SQLite3::BusyException: database is locked: INSERT INTO "check_category_item_keys" ("name", "key_type", "created_at", "updated_at") VALUES (?, ?, ?, ?)

这是我的整合测试文件

require 'test_helper'

class JavascriptTestingTest < ActionDispatch::IntegrationTest

setup do
    @user = users(:michael)
    @user1 = users(:archer)
    @guide = Guide.find(1)
    @mod_relationship = game_mods_relationships(:mod1)
    @category = Category.find(1)
    Capybara.current_driver = Capybara.javascript_driver # :selenium by default
  end


test "adding keys mod success then fail" do
  log_in_as(@user)
  visit(edit_guide_category_path(@guide, @category))
  itemkeycount = CategoryItemKey.count
  fill_in 'Key name', with: "diablo"
  click_button "Add New Key"  #works fine when this line is removed
end

我是测试JS的新手,所以我猜测还有更多要做的事情或需要更改的事情。

托马斯·沃尔波尔

#click_button不等待单击按钮的结果发生,因为它不知道结果是什么。因此,在这种情况下,#click_button将立即返回,测试结束,并且您在两次测试之间用于清理数据库的任何内容(DatabaseCleaner ??)都将开始清理数据库。在此期间,由click_button触发的请求开始得到处理,但是清理线程已经锁定了数据库(或者反过来),因此您会收到错误消息。解决方案是让一条线等待任何单击按钮的可见副作用。

fill_in 'Key name', with: "diablo"
click_button "Add New Key"
assert_text "New Key Added!" # or whatever shows up the page

assert_text将等待(最大限制)该文本出现,这应该意味着数据库已不再使用,测试可以完成并且可以进行清理。还要注意的另一件事是,您不使用基于事务的测试,因为在使用具有JS功能的驱动程序进行测试时,这还会引起各种问题-请参阅https://github.com/DatabaseCleaner/database_cleaner#what-策略最快

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

'SQLite3 :: BusyException:数据库已锁定'通过carrierwave上传时发生异常

来自分类Dev

Sqlite3,SQLSTATE [HY000]:常规错误:5个数据库已锁定

来自分类Dev

新的sqlite3数据库已锁定

来自分类Dev

新的sqlite3数据库已锁定

来自分类Dev

水豚硒sqlite错误

来自分类Dev

耙子流产了!ActiveRecord :: StatementInvalid:SQLite3 :: ReadOnlyException

来自分类Dev

ActiveRecord :: StatementInvalid,SQLite3 :: SQLException:无此类列:

来自分类Dev

如何避免 Django 中的“数据库被锁定”sqlite3 错误?

来自分类Dev

在SQLite中创建视图时出现“数据库已锁定”错误

来自分类Dev

数据库被锁定错误sqlite ios

来自分类Dev

Delphi:数据库已锁定(SQLite)

来自分类Dev

Delphi:数据库已锁定(SQLite)

来自分类Dev

操作错误:数据库已锁定

来自分类Dev

ControllerNameController#create SQLite3 :: SQLException中的ActiveRecord :: StatementInvalid:无此类列:

来自分类Dev

Android sqlite数据库访问引发锁定错误

来自分类Dev

如何解决 SQLite 错误 5:数据库被锁定?

来自分类Dev

SQLite 插入循环错误'SQLiteException:'数据库被锁定'

来自分类Dev

SQLite始终以“数据库表已锁定”答复

来自分类Dev

PDO SQLite无法更新记录:“数据库已锁定”

来自分类Dev

SQLite数据库中的递归已锁定

来自分类Dev

SQLite 数据库文件已锁定

来自分类Dev

SQLlte [SQLITE_BUSY] JAVA Eclipse中数据库文件被锁定(数据库被锁定)错误

来自分类Dev

在sqlite3数据库中检查重复项,如果有则返回错误

来自分类Dev

令人困惑的Django sqlite3“无法打开数据库文件”错误

来自分类Dev

在 sqlite3 数据库中插入日期时间错误

来自分类Dev

在终端中创建 sqlite3 数据库时出现“错误:无法打开数据库”

来自分类Dev

Python数据库sqlite3

来自分类Dev

安装了sqlite3,但仍然出现错误,找不到数据库客户端:sqlite3。检查您的$ PATH,然后重试。

来自分类Dev

Subversion服务器通过SMB访问存储库的错误消息“数据库已锁定”

Related 相关文章

  1. 1

    'SQLite3 :: BusyException:数据库已锁定'通过carrierwave上传时发生异常

  2. 2

    Sqlite3,SQLSTATE [HY000]:常规错误:5个数据库已锁定

  3. 3

    新的sqlite3数据库已锁定

  4. 4

    新的sqlite3数据库已锁定

  5. 5

    水豚硒sqlite错误

  6. 6

    耙子流产了!ActiveRecord :: StatementInvalid:SQLite3 :: ReadOnlyException

  7. 7

    ActiveRecord :: StatementInvalid,SQLite3 :: SQLException:无此类列:

  8. 8

    如何避免 Django 中的“数据库被锁定”sqlite3 错误?

  9. 9

    在SQLite中创建视图时出现“数据库已锁定”错误

  10. 10

    数据库被锁定错误sqlite ios

  11. 11

    Delphi:数据库已锁定(SQLite)

  12. 12

    Delphi:数据库已锁定(SQLite)

  13. 13

    操作错误:数据库已锁定

  14. 14

    ControllerNameController#create SQLite3 :: SQLException中的ActiveRecord :: StatementInvalid:无此类列:

  15. 15

    Android sqlite数据库访问引发锁定错误

  16. 16

    如何解决 SQLite 错误 5:数据库被锁定?

  17. 17

    SQLite 插入循环错误'SQLiteException:'数据库被锁定'

  18. 18

    SQLite始终以“数据库表已锁定”答复

  19. 19

    PDO SQLite无法更新记录:“数据库已锁定”

  20. 20

    SQLite数据库中的递归已锁定

  21. 21

    SQLite 数据库文件已锁定

  22. 22

    SQLlte [SQLITE_BUSY] JAVA Eclipse中数据库文件被锁定(数据库被锁定)错误

  23. 23

    在sqlite3数据库中检查重复项,如果有则返回错误

  24. 24

    令人困惑的Django sqlite3“无法打开数据库文件”错误

  25. 25

    在 sqlite3 数据库中插入日期时间错误

  26. 26

    在终端中创建 sqlite3 数据库时出现“错误:无法打开数据库”

  27. 27

    Python数据库sqlite3

  28. 28

    安装了sqlite3,但仍然出现错误,找不到数据库客户端:sqlite3。检查您的$ PATH,然后重试。

  29. 29

    Subversion服务器通过SMB访问存储库的错误消息“数据库已锁定”

热门标签

归档