摘要:前言忽然想起之前用時(shí)讓我膽戰(zhàn)心驚的那刻,那天我在測(cè)試服務(wù)器上研究著,忽然同事大叫,怎么用戶表被清空了,我當(dāng)時(shí)覺(jué)得跟自己沒(méi)關(guān),但想起我今天剛把的配置更改了,鏈接到了測(cè)試數(shù)據(jù)庫(kù)上,并且運(yùn)行過(guò)里面自帶的登陸案例,但運(yùn)行結(jié)果是失敗的,我覺(jué)得很有可能
前言
忽然想起之前用codecetion時(shí)讓我膽戰(zhàn)心驚的那刻,那天我在測(cè)試服務(wù)器上研究著codeception,忽然同事大叫,怎么用戶表被清空了,我當(dāng)時(shí)覺(jué)得跟自己沒(méi)關(guān),但想起我今天剛把codeception的config配置更改了,鏈接到了測(cè)試數(shù)據(jù)庫(kù)上,并且運(yùn)行過(guò)里面自帶的登陸案例,但運(yùn)行結(jié)果是失敗的,我覺(jué)得很有可能是我捅的簍子,所以我就開(kāi)始找代碼,結(jié)果真的是我干的。
怎么找到的用戶表只剩一條數(shù)據(jù),就是運(yùn)行codeception時(shí)加的,我根據(jù)里面的數(shù)據(jù)找到了存放數(shù)據(jù)的文件
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" => "[email protected]", ], ];怎么解決的
注釋掉這個(gè)方法中的數(shù)據(jù)
namespace testscodeceptionfrontendunitmodels; class SignupFormTest extends DbTestCase { public function fixtures() { return [ /*"user" => [ "class" => UserFixture::className(), "dataFile" => "@tests/codeception/frontend/unit/fixtures/data/models/user.php", ],*/ ]; } }
重新運(yùn)行了了一下單元測(cè)試SignupFormTest ,這次數(shù)據(jù)沒(méi)有被刪除掉
危險(xiǎn)原因我研究了一下被刪除的原因,找到了框架底層的代碼
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(); } } }
就是這個(gè)resetTable方法把數(shù)據(jù)給清空了,所以大家還是慎重使用Fixture,雖然是測(cè)試服務(wù)器,但是里面的數(shù)據(jù)也是非常重要的。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/30528.html
摘要:測(cè)試驅(qū)動(dòng)的安裝我就不寫(xiě)了,這里有詳細(xì)說(shuō)明。然后在命令提示符里執(zhí)行命令重構(gòu)一下記住測(cè)試驅(qū)動(dòng)里代碼發(fā)生改變都需要重構(gòu)一下不然會(huì)報(bào)錯(cuò)。在執(zhí)行命令進(jìn)行測(cè)試執(zhí)行了個(gè)測(cè)試驅(qū)動(dòng)個(gè)斷言全部成功以上只是我的一些經(jīng)驗(yàn)代碼不一定對(duì)希望對(duì)大家有幫助 測(cè)試驅(qū)動(dòng) codeception 的安裝我就不寫(xiě)了,http://www.kkh86.com/it/codec... 這里有詳細(xì)說(shuō)明。 我就說(shuō)一下我的測(cè)試。 首先...
摘要:一簡(jiǎn)介作為工程師,我們很可能遇到一些有必要的進(jìn)行單元測(cè)試的場(chǎng)景。本系列文章就來(lái)介紹下,在框架下,如何使用進(jìn)行單元測(cè)試。 一、簡(jiǎn)介 作為php工程師,我們很可能遇到一些有必要的進(jìn)行單元測(cè)試的場(chǎng)景。本系列文章就來(lái)介紹下,在Yii2框架下,如何使用Codeception進(jìn)行單元測(cè)試。本篇就首先介紹Yii2,以及Codeception的安裝。 二、Yii2和codeception安裝 安裝Yi...
摘要:版本這個(gè)原因是因?yàn)榻昧撕瘮?shù),所以我們需要更改找到的配置文件輸入命令會(huì)出現(xiàn)兩個(gè)相關(guān)的地址配置文件在中找到,打開(kāi)之后搜索將去掉,保存處理這個(gè)問(wèn)題有兩種方式,第一種是修改在中加上,應(yīng)該是禁用的意思還有一種方式就是將升級(jí)到以上,這個(gè)錯(cuò)誤就不會(huì)出現(xiàn) codeception版本 v2.1.8 shell_exec PHP Warning: shell_exec() has been disabl...
摘要:運(yùn)行來(lái)安裝指定的擴(kuò)展。這更便于用戶辨別是否是的擴(kuò)展。當(dāng)用戶運(yùn)行安裝一個(gè)擴(kuò)展時(shí),文件會(huì)被自動(dòng)更新使之包含新擴(kuò)展的信息。上述代碼表明該擴(kuò)展依賴于包。例如,上述的條目聲明將對(duì)應(yīng)于別名。為達(dá)到這個(gè)目的,你應(yīng)當(dāng)在公開(kāi)發(fā)布前做測(cè)試。 簡(jiǎn)述 擴(kuò)展是專門設(shè)計(jì)的在 Yii 應(yīng)用中隨時(shí)可拿來(lái)使用的, 并可重發(fā)布的軟件包。 基礎(chǔ) 例如, yiisoft/yii2-debug 擴(kuò)展在你的應(yīng)用的每個(gè)頁(yè)面底部添加...
摘要:屬于驗(yàn)收測(cè)試返回我測(cè)試的這個(gè)必須要先登錄切換到配置站點(diǎn)登錄斷言可以在這個(gè)頁(yè)面里看到指定的文字用戶名密碼登錄退出登錄登錄成功后跳轉(zhuǎn)到目標(biāo)頁(yè)面添加客戶填寫(xiě)參數(shù)的情況下代表成功參數(shù)為空的情況代表失敗運(yùn)行查 ajax屬于驗(yàn)收測(cè)試返回我測(cè)試的這個(gè)ajax必須要先登錄 use testscodeceptionfrontendAcceptanceTester; $I = new Acceptanc...
閱讀 1470·2021-09-03 10:29
閱讀 3483·2019-08-29 16:24
閱讀 2079·2019-08-29 11:03
閱讀 1447·2019-08-26 13:52
閱讀 2954·2019-08-26 11:36
閱讀 2816·2019-08-23 17:19
閱讀 582·2019-08-23 17:14
閱讀 838·2019-08-23 13:59