精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Rspec的數據庫事務:如何清理陳舊數據?

數據庫 其他數據庫
測試用例之間的陳舊數據是RSpec中競態條件的主要原因之一,包括數據庫Redis、文件等。本文就將討論如何清理數據庫中的陳舊數據。

本文轉載自公眾號“讀芯術”(ID:AI_Discovery)。

測試用例之間的陳舊數據是RSpec中競態條件的主要原因之一,包括數據庫Redis、文件等。本文就將討論如何清理數據庫中的陳舊數據。

Rails Rspec后臺默認事務

如果使用rails-rspec,默認情況下,spec/rails_helper.rb中會啟用以下配置:

  1. RSpec.configuredo |config| 
  2.                   config.use_transactional_fixtures=true 
  3.                 end 

這意味著“在事務內運行每個示例”,即在示例結束時,所有數據庫的變更都將回滾。

如何讓“事務裝置”實現“在事務內運行每個示例”?

在深入研究Rails 4代碼庫,了解了它在后臺的實際工作之后,我發現了以下內容。setup_fixtures函數中,Rails為每個數據庫連接調用begin_transaction。

 

Rspec的數據庫事務:如何清理陳舊數據?

 

 

Rails 4的setup_fixtures

 

在teardown_fixtures函數中,Rails為每個數據庫連接調用rollback_transaction。

 

Rspec的數據庫事務:如何清理陳舊數據?

 

 

Rails 4的teardown_fixtures

 

這也意味著,如果在應用程序中使用多個數據庫,那么應用程序將為所有數據庫創建事務。

在示例之外創建的數據庫記錄將不會回滾

由于數據庫事務圍繞著每個示例,因此在示例范圍之外創建的任何數據庫記錄都不會回滾,也就是說,在before(:all)、before(:context)或before(:suite)代碼塊中創建的任何數據庫記錄都不會回滾。

這可能導致示例組之間而不是同一組的示例之間的競態條件,因此處理hook問題時要十分小心。

  1. context'context 1'do 
  2.           before(:context) do 
  3.             create(:user) # WON'T BE ROLLED-BACK 
  4.           end 
  5.                beforedo 
  6.             create(:user) # will be rolled-back 
  7.           end 
  8.                # ... 
  9.         end 
  10.              context'context 2'do 
  11.           before(:context) do 
  12.             create(:user) # WON'T BE ROLLED-BACK 
  13.           end 
  14.                # ... 
  15.         end 
  16.              # BY NOW, THERE ARE 2 USER RECORDS COMMITED TO DATABASE 

手動設置數據庫事務

你還可以選擇使用hook手動設置數據庫事務。

  1. RSpec.configuredo |config| 
  2.                   config.use_transactional_fixtures=false# DISABLE DEFAULT TRANSACTIONS 
  3.                 end 
  4.              before(:example) do 
  5.                   ActiveRecord::Base.connection.begin_transaction 
  6.                 end 
  7.              after(:example) do 
  8.                   conn =ActiveRecord::Base.connection 
  9.                   conn.rollback_transactionif conn.transaction_open? 
  10.                 end 
  11.              # OR 
  12.              around(:example) do |example| 
  13.                   ActiveRecord::Base.transactiondo 
  14.                     example.run 
  15.                            # ROLLBACK after the example finishes. 
  16.                     # This exception is silently swallowed by ActiveRecord. 
  17.                     raiseActiveRecord::Rollback 
  18.                   end 
  19.                 end 

[Rails 4 & Rails 5.0.x]數據庫事務是按線程執行的

 

Rspec的數據庫事務:如何清理陳舊數據?

 

 

Rails 4中的數據庫連接

 

由上可知,ActiveRecord數據庫連接是按線程執行的。因此,Rails通過use_transactional_fixtures管理的默認數據庫事務只在主線程中可用。

從技術上說,根據事務回滾策略,一個線程的數據庫記錄將獨立于其他線程。需要訪問其他線程中的某個線程的數據庫數據時請注意這一點,例如Selenium。

[Rails 4 & Rails 5.0.x]JavaScript驅動程序(Selenium)和Capybara Webkit的驗收測試問題。

Selenium在另一個線程上運行,因此它不能與運行RSpec的主線程共享事務。為了讓客戶端應用程序訪問數據庫中的數據,RSpec需要將改動提交。這類情況下可以允許提交數據,然后手動清理數據。

[Rails 4 & Rails 5.0.x]DatabaseCleaner——回滾策略

要解決上述問題,首先需要禁用Rails派生的事務,將config.use_transactional_fixtures設置為false,或干脆刪除它。DatabaseCleaner是一個gem,它提供了清理數據庫的高級策略,例如刪節、事務處理或刪除。

下面是利用DatabaseCleaner處理上述JS驅動程序問題的著名gist:

Rspec的數據庫事務:如何清理陳舊數據?

[從Rails 5.1起]數據庫事務在測試線程之間共享

線程之間的共享數據庫事務由Rails團隊的Eileen完成,并作為Rails 5.1的一部分內容發布。

 

 

Rspec的數據庫事務:如何清理陳舊數據?

 

 

加入了lock_thread

 

Rspec的數據庫事務:如何清理陳舊數據?
為測試啟用了lock_thread

此更新允許將啟用JS的驗收測試封裝在RSpec的默認事務中,這已經消除了對DatabaseCleaner的需求。

希望本文能幫助你更好地理解RSpec中的數據庫事務。

 

責任編輯:趙寧寧 來源: 今日頭條
相關推薦

2015-03-31 10:26:01

數據庫數據庫事務

2010-10-08 09:38:55

Android數據庫事

2009-09-24 14:12:22

Hibernate數據

2025-04-08 06:00:00

2024-01-18 09:43:11

MySQL數據庫

2018-07-20 11:10:21

數據庫事務隔離性

2023-10-11 08:09:53

事務隔離級別

2010-04-15 08:57:29

Oracle數據庫

2024-05-28 00:00:30

Golang數據庫

2010-07-05 17:41:37

SQL Server

2024-04-08 10:11:15

MYSQL數據庫事務

2010-09-08 15:55:20

SQL事務特性

2020-06-17 16:56:36

數據庫MySQL跨行事務

2017-08-22 17:10:45

數據庫MySQL事務模型

2022-11-14 18:23:06

亞馬遜

2018-09-06 14:53:39

數據庫事務隔離隔離級別

2010-05-31 15:12:44

MySQL數據庫

2013-08-06 09:33:28

英特爾數據中心淘汰

2011-08-12 13:33:31

Oracle數據庫自治事務

2009-08-06 18:10:06

C#數據庫事務
點贊
收藏

51CTO技術棧公眾號

91人妻一区二区三区| 亚欧洲精品在线视频免费观看| 国产成人手机视频| 午夜在线观看视频| 成人国产精品免费观看动漫| 秋霞av国产精品一区| 蜜桃传媒一区二区亚洲av| 福利一区视频| 亚洲va天堂va国产va久| 色综合久久久久久久久五月| 午夜精品在线播放| 视频一区二区中文字幕| 欧美精品手机在线| 香蕉视频黄色在线观看| 免费一级欧美在线大片| 日本高清免费不卡视频| 国产日韩亚洲欧美在线| 丝袜美腿美女被狂躁在线观看| 久久久久综合| 欧美日韩国产二区| 国产欧美一区二区三区在线观看视频| 伦理在线一区| 国产精品国产成人国产三级| 精品国产综合久久| 国产极品久久久| 日韩1区2区日韩1区2区| 69久久夜色精品国产7777| 成人做爰视频网站| 久久99精品久久久久久园产越南| 欧美视频裸体精品| 日韩一级免费看| 日本电影全部在线观看网站视频| 久久激五月天综合精品| 欧美一级大片视频| 午夜写真片福利电影网| 98精品久久久久久久| 精品在线小视频| 折磨小男生性器羞耻的故事| 日韩成人精品一区二区三区| 色美美综合视频| 欧美日本视频在线观看| 欧美人体视频xxxxx| 亚洲欧洲av另类| 亚洲精品久久久久久一区二区| 一区二区视频免费| 老牛嫩草一区二区三区日本| 久久久久久久久久久91| 国产这里有精品| 国产精品久久久久久影院8一贰佰| 日韩欧美在线1卡| 91插插插影院| 精品国产三区在线| 欧美一区二区三区免费观看视频| 欧美 日韩 国产 高清| 91麻豆免费在线视频| 亚洲少妇屁股交4| 欧美日韩一区二区三区电影| 免费av在线网址| 亚洲日本电影在线| 日本美女爱爱视频| 午夜羞羞小视频在线观看| 亚洲日本在线观看| 国产精品igao激情视频| 羞羞电影在线观看www| 亚洲激情在线播放| 人妻夜夜添夜夜无码av| 97超碰在线免费| 日韩欧美在线视频日韩欧美在线视频 | 欧美日韩成人一区二区三区| 污污视频在线免费看| 成人毛片视频在线观看| 精品免费国产| 国产污视频在线| 国产精品电影一区二区三区| 潘金莲一级淫片aaaaa免费看| 嫩草在线播放| 欧美国产日韩亚洲一区| 在线免费观看成人| 免费在线国产视频| 欧美午夜激情小视频| 国产精品无码av无码| 成人影院在线免费观看| 欧美三级在线播放| 久久精品一二三四| 欧美色资源站| 色一区av在线| 久久亚洲精品大全| 久久一区亚洲| 亚洲xxxxx| 天堂网在线观看视频| 国产日韩欧美高清| 日韩精品一区二区在线视频| 国产在线精彩视频| 欧美日韩高清影院| 日韩免费高清一区二区| 日韩av大片| 色综合老司机第九色激情| 亚洲图片在线视频| 国产乱子轮精品视频| 1卡2卡3卡精品视频| 青青视频在线观| 亚洲乱码精品一二三四区日韩在线| 亚洲精品无人区| 亚洲综合图区| 欧洲生活片亚洲生活在线观看| 成人av一级片| 青娱乐极品盛宴一区二区| 精品999在线播放| 大吊一区二区三区| 亚洲视频成人| 91视频免费在线观看| 可以在线观看的av| 亚洲综合色噜噜狠狠| 天天爱天天操天天干| 国产精品黄网站| 久久久国产影院| 国产午夜麻豆影院在线观看| 国产成人一级电影| 亚洲一区在线直播| 三级成人黄色影院| 精品动漫一区二区三区在线观看| 久草视频福利在线| 99久久激情| 国产精品久久久久77777| 亚洲人成色777777精品音频| 亚洲码国产岛国毛片在线| 9久久婷婷国产综合精品性色| 成人全视频免费观看在线看| 亚洲精品国产综合久久| 麻豆亚洲av成人无码久久精品| 999亚洲国产精| 亚洲一区二区三区777| 川上优的av在线一区二区| 亚洲福利一区二区三区| 手机在线免费毛片| 日韩精品不卡一区二区| 国产精品99久久久久久久久久久久 | 日韩美女一级视频| 亚洲最大的成人av| 亚洲一级片免费观看| 99久久精品网站| 成人精品视频99在线观看免费| 亚洲av无码国产综合专区 | 欧美日本一区二区三区四区| 国产网站无遮挡| 日韩天堂av| 国产日本一区二区三区| heyzo在线播放| 亚洲国产另类久久精品 | 亚洲视频一区在线| 91 在线视频观看| 99re66热这里只有精品8| 国产精品自产拍在线观看中文| 精品人妻一区二区三区三区四区| 成人高清免费观看| 成人在线播放网址| 精品五月天堂| 奇米成人av国产一区二区三区| 一区二区国产欧美| 国产精品全国免费观看高清| 中文字幕av专区| 国产精品久久久久久久免费观看| 日本一区二区三区四区视频| 日韩福利一区二区| 欧美影院一区二区| 91香蕉视频在线播放| 国产精品1区2区3区| 人妻av中文系列| 台湾色综合娱乐中文网| 国产精品国产自产拍高清av水多 | 亚洲人成在线观看| 自拍偷拍精品视频| 亚洲丝袜另类动漫二区| 黑人性生活视频| 日韩香蕉视频| 一区二区不卡在线观看| 深夜福利一区| 日本欧美中文字幕| 看黄网站在线| 日韩av综合网| 在线观看亚洲国产| ...av二区三区久久精品| 日本亚洲一区二区三区| 午夜久久美女| 日本成人三级电影网站| 91精品亚洲一区在线观看| 久久免费视频这里只有精品| 国产大学生校花援交在线播放| 大桥未久av一区二区三区| 精品无码在线观看| 国产精品一级在线| 久久国产乱子伦免费精品| 国产精品福利在线观看播放| 狠狠色噜噜狠狠狠狠色吗综合| 性国产高清在线观看| 亚洲精品在线不卡| 国产欧美一级片| 欧美午夜女人视频在线| 黄色a级片在线观看| 91免费看`日韩一区二区| 女人高潮一级片| 亚洲免费精品| 99热都是精品| 精品一区不卡| 国产日韩精品一区观看| 欧美日韩va| 青青精品视频播放| 国模私拍视频在线播放| 色综合亚洲精品激情狠狠| 五月婷婷六月激情| 91精品在线免费| 亚洲高清在线看| 午夜精品福利久久久| 成人无码精品1区2区3区免费看| 另类调教123区| 青青草原成人网| 国产精品theporn| 在线成人av电影| 欧美日韩爱爱| 久久精品国产一区二区三区不卡| 亚洲播播91| 91精品国产高清| 99在线播放| 精品国产一区二区三区久久狼5月 精品国产一区二区三区久久久狼 精品国产一区二区三区久久久 | 一本色道久久88亚洲综合88 | 正在播放一区二区| 无码人妻久久一区二区三区| 亚洲线精品一区二区三区| 国精产品久拍自产在线网站| 久久久亚洲欧洲日产国码αv| 8x8x最新地址| 久久久国产亚洲精品| 国产精品国产亚洲精品看不卡| 亚洲+小说+欧美+激情+另类| 国产精品三区四区| 亚洲福利合集| 91成人理论电影| 国产高清精品二区| 5566av亚洲| 亚洲精品一区二区三区中文字幕 | 亚洲图片在线播放| 在线免费一区三区| 在线免费观看av网址| 色哟哟欧美精品| 欧美男人亚洲天堂| 在线亚洲一区二区| 久久久久精彩视频| 精品视频1区2区3区| 午夜一级黄色片| 欧美丝袜丝交足nylons图片| 亚洲一区中文字幕在线| 欧美日韩国产精选| 在线播放国产一区| 欧美人狂配大交3d怪物一区| 91精东传媒理伦片在线观看| 91麻豆精品国产91久久久更新时间| 国产精品人人人人| 欧美日韩国产中文精品字幕自在自线| 黄色激情小视频| 一区二区中文字幕在线| 日本爱爱小视频| 一区二区欧美精品| 久久久午夜影院| 日本福利一区二区| 国产精品久久久久久久久毛片 | 动漫av网站免费观看| 久久精品系列| mm131亚洲精品| 国产精品1区2区3区在线观看| 国产一级特黄a大片免费| 日本不卡中文字幕| 波多野结衣网页| 99视频一区二区三区| 无码熟妇人妻av| |精品福利一区二区三区| 国产一级特黄毛片| 91精品办公室少妇高潮对白| 一区二区国产欧美| 亚洲精品大尺度| 在线免费av网站| 欧美乱妇40p| 日日av拍夜夜添久久免费| 成人国产精品久久久| 巨人精品**| 亚洲视频小说| 国产精品第十页| 中文字幕国产传媒| 成人精品在线视频观看| 五月激情四射婷婷| 亚洲国产精品一区二区久久| 欧美超碰在线观看| 日韩无一区二区| 国产日本在线| 欧美国产中文字幕| 国产日韩另类视频一区| julia一区二区中文久久94| 你懂的一区二区三区| 97在线免费视频观看| 日韩高清一区二区| 亚洲天堂2024| 亚洲人成影院在线观看| 亚洲中文字幕无码爆乳av| 精品欧美久久久| 免费超碰在线| 国产精品露脸av在线| 欧美一区 二区| 国产成人亚洲综合无码| 男人的天堂亚洲一区| 成熟妇人a片免费看网站| 欧美国产精品v| 国产精品久久久免费视频| 欧美日韩国产高清一区二区三区| 国产美女三级无套内谢| 亚洲日本成人网| 免费成人在线电影| 国产精华一区| 性欧美69xoxoxoxo| 男女啪啪网站视频| 2024国产精品视频| 国产中文字幕免费| 日韩一区二区精品| 在线免费观看黄| 国产精品91在线观看| 亚洲毛片免费看| 鲁一鲁一鲁一鲁一色| 国产成人av电影在线播放| 成人在线观看免费完整| 欧美日韩三级视频| 成人在线播放视频| 国产大片精品免费永久看nba| 亚洲免费资源| 亚洲乱码一区二区三区| 日韩精品一级二级 | 精品视频在线播放一区二区三区 | 91国内在线播放| 国产色婷婷亚洲99精品小说| 五月天综合激情| 亚洲加勒比久久88色综合| 9lporm自拍视频区在线| 成人欧美一区二区| 亚洲视频久久| 黑森林av导航| 精品久久久久久国产| 亚洲卡一卡二卡三| 久久久久五月天| 欧美美女在线直播| 国产一区二区网| 91免费小视频| 四虎影院在线免费播放| 一本色道久久综合狠狠躁篇的优点 | 女厕嘘嘘一区二区在线播放 | 午夜欧洲一区| 日本黄大片在线观看| 豆国产96在线|亚洲| 精品处破女学生| 亚洲精品短视频| 深夜成人影院| 亚洲午夜精品国产| 久久91精品国产91久久小草| 人人澡人人澡人人看| 日韩色视频在线观看| av在线理伦电影| 久久伊人资源站| 日本va欧美va精品| 亚洲综合视频网站| 精品国产不卡一区二区三区| 国产美女福利在线观看| 久久综合九色综合久99| 日韩av不卡一区二区| 女性裸体视频网站| 日韩欧美123| 美女的胸无遮挡在线观看| 日韩精品欧美一区二区三区| 久久精品理论片| a级片在线观看免费| 日韩精品免费在线| 激情开心成人网| 加勒比海盗1在线观看免费国语版| 日本中文一区二区三区| 久久爱一区二区| 精品国产一区二区三区av性色| 成人影院在线看| 精品久久久久久中文字幕动漫| 亚洲综合色站| 亚洲一区二区三区综合| 欧美亚洲动漫制服丝袜| 啪啪免费视频一区| 日韩欧美视频第二区| 国产成a人亚洲| 中文字幕免费在线看| 欧美高清激情视频| 激情综合网站| 无码人妻久久一区二区三区蜜桃| 亚洲人成7777| 日本韩国精品一区二区| 91精品综合久久久久久五月天| 欧美电影免费播放| 呦呦视频在线观看| 91精品麻豆日日躁夜夜躁| 亚洲永久av|