摘要:前言忽然想起之前用時讓我膽戰心驚的那刻,那天我在測試服務器上研究著,忽然同事大叫,怎么用戶表被清空了,我當時覺得跟自己沒關,但想起我今天剛把的配置更改了,鏈接到了測試數據庫上,并且運行過里面自帶的登陸案例,但運行結果是失敗的,我覺得很有可能
前言
忽然想起之前用codecetion時讓我膽戰心驚的那刻,那天我在測試服務器上研究著codeception,忽然同事大叫,怎么用戶表被清空了,我當時覺得跟自己沒關,但想起我今天剛把codeception的config配置更改了,鏈接到了測試數據庫上,并且運行過里面自帶的登陸案例,但運行結果是失敗的,我覺得很有可能是我捅的簍子,所以我就開始找代碼,結果真的是我干的。
怎么找到的用戶表只剩一條數據,就是運行codeception時加的,我根據里面的數據找到了存放數據的文件
testscodeceptioncommonunitfixturesdatamodelsuser.php return [ [ "username" => "bayer.hudson", "auth_key" => "HP187Mvq7Mmm3CTU80dLkGmni_FUH_lR", //password_0 "password_hash" => "$2y$13$EjaPFBnZOQsHdGuHI.xvhuDp1fHpo8hKRSk6yshqa9c5EG8s3C3lO", "password_reset_token" => "ExzkCOaYc1L8IOBs4wdTGGbgNiG3Wz1I_1402312317", "created_at" => "1402312317", "updated_at" => "1402312317", "email" => "nicole.paucek@schultz.info", ], ];怎么解決的
注釋掉這個方法中的數據
namespace testscodeceptionfrontendunitmodels; class SignupFormTest extends DbTestCase { public function fixtures() { return [ /*"user" => [ "class" => UserFixture::className(), "dataFile" => "@tests/codeception/frontend/unit/fixtures/data/models/user.php", ],*/ ]; } }
重新運行了了一下單元測試SignupFormTest ,這次數據沒有被刪除掉
危險原因我研究了一下被刪除的原因,找到了框架底層的代碼
namespace yii est; class ActiveFixture extends BaseActiveFixture { public function load() { $this->resetTable(); $this->data = []; $table = $this->getTableSchema(); foreach ($this->getData() as $alias => $row) { $primaryKeys = $this->db->schema->insert($table->fullName, $row); $this->data[$alias] = array_merge($row, $primaryKeys); } } protected function resetTable() { $table = $this->getTableSchema(); $this->db->createCommand()->delete($table->fullName)->execute(); if ($table->sequenceName !== null) { $this->db->createCommand()->resetSequence($table->fullName, 1)->execute(); } } }
就是這個resetTable方法把數據給清空了,所以大家還是慎重使用Fixture,雖然是測試服務器,但是里面的數據也是非常重要的。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/30528.html
摘要:測試驅動的安裝我就不寫了,這里有詳細說明。然后在命令提示符里執行命令重構一下記住測試驅動里代碼發生改變都需要重構一下不然會報錯。在執行命令進行測試執行了個測試驅動個斷言全部成功以上只是我的一些經驗代碼不一定對希望對大家有幫助 測試驅動 codeception 的安裝我就不寫了,http://www.kkh86.com/it/codec... 這里有詳細說明。 我就說一下我的測試。 首先...
摘要:一簡介作為工程師,我們很可能遇到一些有必要的進行單元測試的場景。本系列文章就來介紹下,在框架下,如何使用進行單元測試。 一、簡介 作為php工程師,我們很可能遇到一些有必要的進行單元測試的場景。本系列文章就來介紹下,在Yii2框架下,如何使用Codeception進行單元測試。本篇就首先介紹Yii2,以及Codeception的安裝。 二、Yii2和codeception安裝 安裝Yi...
摘要:版本這個原因是因為禁用了函數,所以我們需要更改找到的配置文件輸入命令會出現兩個相關的地址配置文件在中找到,打開之后搜索將去掉,保存處理這個問題有兩種方式,第一種是修改在中加上,應該是禁用的意思還有一種方式就是將升級到以上,這個錯誤就不會出現 codeception版本 v2.1.8 shell_exec PHP Warning: shell_exec() has been disabl...
摘要:運行來安裝指定的擴展。這更便于用戶辨別是否是的擴展。當用戶運行安裝一個擴展時,文件會被自動更新使之包含新擴展的信息。上述代碼表明該擴展依賴于包。例如,上述的條目聲明將對應于別名。為達到這個目的,你應當在公開發布前做測試。 簡述 擴展是專門設計的在 Yii 應用中隨時可拿來使用的, 并可重發布的軟件包。 基礎 例如, yiisoft/yii2-debug 擴展在你的應用的每個頁面底部添加...
摘要:屬于驗收測試返回我測試的這個必須要先登錄切換到配置站點登錄斷言可以在這個頁面里看到指定的文字用戶名密碼登錄退出登錄登錄成功后跳轉到目標頁面添加客戶填寫參數的情況下代表成功參數為空的情況代表失敗運行查 ajax屬于驗收測試返回我測試的這個ajax必須要先登錄 use testscodeceptionfrontendAcceptanceTester; $I = new Acceptanc...
閱讀 1433·2021-09-03 10:29
閱讀 3457·2019-08-29 16:24
閱讀 2010·2019-08-29 11:03
閱讀 1409·2019-08-26 13:52
閱讀 2924·2019-08-26 11:36
閱讀 2785·2019-08-23 17:19
閱讀 559·2019-08-23 17:14
閱讀 811·2019-08-23 13:59