亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > SQLite > 正文

用另一種方法來進行Laravel數據庫測試(SQLite)

2020-03-22 17:19:48
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了關于用另一種方法來進行Laravel數據庫測試(SQLite),有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下

Laravel數據庫測試

在測試方面,Laravel內置使用PHPUnit提供了非常方便的解決方案。而對于數據庫增刪改查的測試,要解決的一個很重要的問題就是如何在測試完成之后,恢復數據庫的原貌,例如要測試一個用戶注冊的方法,需要插入一條用戶記錄到數據庫,但是測試完成之后,我們并不想讓這條測試用例保存在數據庫里。為了解決這個問題,Laravel提供了非常方便的方案:

使用遷移:DatabaseMigrations

使用事務:DatabaseTransactions

參考資料:http://laravel.com/docs/5.3/database-testing#resetting-the-database-after-each-test另外一種解決方案:使用SQLite的內存數據庫:memory:

Laravel提供的兩種解決方案,仍然對數據庫進行了讀寫操作,某些時候你可能并不想這樣(例如多人共享一個線上開發數據庫),此時,還可以用一種更為優雅的方式:SQLlite,邏輯其實也非常簡單:就是在跑測試用例的時候,將數據庫的連接替換為SQLite。

使用示例

例如我們有以下測試類(該事例并不具有代表性,僅用于說明問題,并假設本機已經安裝SQLite):

html' target='_blank'>class HomePageTest extends TestCase { public function testHomePage()  // 創建一個測試用戶,并保存 $user = factory(App/User::class)- create(); $this- actingAs($user)- visit( /home )- see( Dashboard }

首先在Laravel的數據庫配置文件,即config/database.php的connections數組中添加一個新的數據庫連接

 sqlite = [ driver = sqlite , database = :memory: , prefix = ,],

這里一個非常重要的參數就是 database = :memory: ,:memory:數據庫是SQLite中內置的一個內存數據庫,每次運行測試用例的時候都會在內存中創建一個新的數據庫,并在測試完成關閉數據庫連接后,自動清除掉,具有良好的隔離性,又因為是在內存中的,所以速度也很快,這些特性對于測試非常方便,這也是我們選用SQLite數據庫作為測試庫的一個非常重要的原因。有關詳細解釋,點擊這里。

然后需要修改PHPUnit的配置文件,在phpunit.xml中,將數據庫連接改為剛剛定義的SQLite連接

 php  env name= APP_ENV value= testing /  env name= CACHE_DRIVER value= array /  env name= SESSION_DRIVER value= array /  env name= QUEUE_DRIVER value= sync /  !-- 將數據庫連接改為剛剛定義的SQLite連接 --  env name= DB_CONNECTION value= sqlite /  /php 

這會覆蓋.env中定義的數據庫連接DB_CONNECTION=mysql,并告訴框架在運行測試的時候,用sqlite連接代替mysql連接。

最后需要在運行測試用例之前執行數據庫遷移,在測試類的基類,即TestCase.php中添加setUp方法

public function setUp() parent::setUp(); // 執行數據庫遷移  $this- artisan( migrate }

這樣在每次執行測試用例之前,都會向SQLite的:memory:數據庫中執行所有的遷移,生成業務邏輯所需的數據表。

方案優缺點

該方案關鍵點在于使用SQLite內置的一個內存數據庫:memory:,因此速度比較快,有很好的隔離性,也不會對我們的開發數據庫有任何的影響。

當然該方案也有缺點,假如項目的數據庫龐大,有大量的數據表或者遷移文件,會消耗大量內存,當運行測試的時候可能會由于內存不足,導致測試中斷。此時需要為PHP分配合適的內存,在php.ini中修改配置memory_limit = 128M

以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP !

相關推薦:

如何解決Laravel.log 文件寫入的問題

Laravel開發環境部署之homestead 安裝配置過程(windows系統)

laravel的路由(router)圖文詳解

以上就是用另一種方法來進行Laravel數據庫測試(SQLite)的詳細內容,PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

上一篇:SQLite速度評測代碼

下一篇:返回列表

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
在线亚洲欧美视频| 欧美日韩在线视频一区| 丝袜情趣国产精品| 国产69久久精品成人| 亚洲精品国产精品国自产在线| 一区二区三区天堂av| 亚洲综合在线播放| 久久影视电视剧免费网站清宫辞电视| 成人性生交大片免费看视频直播| 国产精品 欧美在线| 成人黄色免费看| 精品久久久久久久久久久久久| 亚洲精品国产免费| 久久久久久久久综合| 精品综合久久久久久97| 欧美高清激情视频| 国产性猛交xxxx免费看久久| 国产精品18久久久久久麻辣| 黄色精品在线看| 成人黄色在线播放| x99av成人免费| 欧美在线一级视频| 欧美日韩一区二区三区在线免费观看| 曰本色欧美视频在线| 久久久国产精彩视频美女艺术照福利| 国产激情久久久久| 欧美视频第一页| 高跟丝袜欧美一区| 国产精品爽爽爽爽爽爽在线观看| 成人午夜在线视频一区| 欧美激情综合色| 伊人伊成久久人综合网站| 久久视频国产精品免费视频在线| 久久天天躁日日躁| 日韩精品极品视频| 亚洲伊人一本大道中文字幕| 亚洲色图第一页| 久久久亚洲欧洲日产国码aⅴ| 久久精品国产69国产精品亚洲| 日本国产欧美一区二区三区| 亚洲三级av在线| 在线免费看av不卡| 国产精品一区二区3区| 国产精品青青在线观看爽香蕉| 亚洲国产一区自拍| 韩国一区二区电影| 亚洲美女精品成人在线视频| 第一福利永久视频精品| 亚洲综合中文字幕在线观看| 欧美成人免费视频| 成人综合网网址| 日韩一区二区三区国产| 自拍偷拍亚洲精品| 国产精品一区二区性色av| 黄网站色欧美视频| 成人av在线亚洲| 国产精品福利网| 国产精品黄视频| 亚洲精品成人网| 国产精品aaaa| 日韩美女福利视频| 精品久久久一区| 日韩av最新在线观看| 人体精品一二三区| 亚洲一区av在线播放| 96pao国产成视频永久免费| 欧美一区二区.| 97超碰色婷婷| 成人国内精品久久久久一区| 成人欧美一区二区三区黑人孕妇| 久久久久久久久久久国产| 91黑丝高跟在线| 国产精品福利网站| 日韩中文字幕在线| 日韩欧美在线字幕| 视频在线一区二区| 国产亚洲一区二区精品| 久久伊人精品视频| 亚洲黄色有码视频| 欧美激情亚洲一区| 最近2019中文免费高清视频观看www99| 国产成人精品免高潮在线观看| 国产欧美日韩中文字幕| 精品少妇v888av| 亚洲精品久久在线| 精品亚洲永久免费精品| 日韩电影免费在线观看| 日韩视频欧美视频| 亚洲第一av网| 欧美激情视频在线| 色多多国产成人永久免费网站| 久久亚洲欧美日韩精品专区| 国产成人精品一区二区三区| 国产精品久久久久高潮| 久久久国产精彩视频美女艺术照福利| 久久久亚洲影院| www.日韩系列| 亚洲精品丝袜日韩| 精品国内自产拍在线观看| 欧美极品少妇全裸体| 日韩精品在线看| 欧美日韩国产一区在线| 成人黄色短视频在线观看| 亚洲国产成人精品久久| 97欧美精品一区二区三区| 国产91亚洲精品| 日韩av电影在线播放| 日本精品视频在线| 97国产精品久久| 国产精品一区二区久久| 欧美乱大交xxxxx| 日韩av电影中文字幕| 成人久久一区二区三区| 午夜精品久久久久久久久久久久| 欧美激情视频网| 色哟哟亚洲精品一区二区| 日韩欧美在线播放| 奇米4444一区二区三区| 一区二区中文字幕| 亚洲亚裔videos黑人hd| 国产一区视频在线| 国产精品免费一区二区三区都可以| 992tv成人免费视频| 国产精品网站大全| 国产精品91一区| 91av视频在线播放| 在线视频欧美性高潮| xxxxx成人.com| 久久久精品电影| 亚洲午夜国产成人av电影男同| 亚洲第一二三四五区| 日韩在线中文字| 午夜精品视频网站| 国产精品亚洲片夜色在线| 日韩av在线免费观看一区| 久久久精品2019中文字幕神马| 亚洲欧美日韩直播| 精品女同一区二区三区在线播放| 欧美一级大片在线观看| 北条麻妃在线一区二区| 日韩欧美国产骚| 日韩中文理论片| 欧美国产日韩一区二区在线观看| 欧美性理论片在线观看片免费| 欧美激情免费看| 国产一区玩具在线观看| 美女精品视频一区| 国产一区二区在线播放| 久久久国产精品免费| 国产精品一区二区av影院萌芽| 欧美日韩在线视频一区| 亚洲97在线观看| 日韩电影在线观看永久视频免费网站| 日韩国产欧美区| 2019中文字幕在线免费观看| 亚洲毛片在线观看.| 欧美一级片在线播放| 青青久久av北条麻妃海外网| 国产精品中文字幕在线观看| 久久五月天色综合| 97精品国产97久久久久久免费| 日韩有码视频在线| 精品一区二区三区四区在线| 一本一本久久a久久精品牛牛影视|