祝大家新年快樂!我想在新的一年寫更多的單元測試,但如何更輕鬆地處理它?我通過--test-enable
和--stop-after-init
命令行參數更新模塊時發現要運行測試。我也讀了--test-file parameter
,但它不起作用。該參數在文檔中也沒有描述。有效運行模塊的單元測試
你會怎麼做TDD(測試驅動開發)?爲了做到這一點,你必須能夠快速運行測試。需要測試整個模塊及其所有依賴性,這使得經常編寫測試不切實際。如何運行單個測試用例?
祝大家新年快樂!我想在新的一年寫更多的單元測試,但如何更輕鬆地處理它?我通過--test-enable
和--stop-after-init
命令行參數更新模塊時發現要運行測試。我也讀了--test-file parameter
,但它不起作用。該參數在文檔中也沒有描述。有效運行模塊的單元測試
你會怎麼做TDD(測試驅動開發)?爲了做到這一點,你必須能夠快速運行測試。需要測試整個模塊及其所有依賴性,這使得經常編寫測試不切實際。如何運行單個測試用例?
從'運行單個單元測試用例'編輯我自己的問題。這個命令適用於我:
python ./odoo.py -i module_to_test --log-level=test -d minimal_database --test-enable --stop-after-init
這與丹迪的回答非常相似。
然而,該解決方案似乎是不使用--test-file
參數,因爲這意外運行所有相關的模塊中的所有測試和做任何其他,使得它太長時間來執行。
該解決方案的另一部分是使用最小數據庫,其中只需要測試模塊以及當然的依賴關係。
現在,即使測試代碼使用從屬模塊中的對象,上述命令也只需要幾秒鐘即可在我的機器上執行。如果我只能阻止模塊在運行測試時進行更新,以使其更快更高效......
這真的很難做到TDD與Odoo因爲大多數模塊依賴仍然依賴於某些其它模塊等其它模塊...
但什麼工作對我來說是有安裝所有自定義模塊我創建的其他自定義模塊,
該模塊還包含我在Odoo上完成的「任何自定義」的所有測試。儘管您可以將每個模塊測試放置在模塊本身中,但是當某些測試無法正常運行時,我遇到了一些問題。所以我決定把他們全部放在一個模塊中
所以只要我推一個新的提交。這是我用它來運行測試命令(假設我的模塊被命名爲all_modules
)
python odoo.py --addons=addons_path -i all_modules --log-level=test -d Test_Database --test-enable --xmlrpc-port=80xx --stop-after-init
在此之前,我已經有一個數據庫(Test_Database
)這是我的生產環境的克隆(這樣我就可以測試對現實數據)運行測試的地方。
對於部署,我只是使用rsync
並複製文件。
我的測試是相當快的(〜5分鐘),因爲我測試對一個克隆的數據庫,也因爲我只運行了我已經建立了
我知道自定義模塊測試,這不是標準TDD,但Odoo並不符合軟件開發中的很多模式,大多數情況下您只需要平衡一下,找出適合您的方式。
我個人發現run-bot
太複雜,資源飢渴。 PS:這對Selenium測試也有幫助。
如何防止Odoo在'核心'模塊上運行測試?我只想讓它在我的自定義模塊('all_modules')上測試** ** ** –
我很高興你找到了解決方案。 Odoo的更新系統和缺乏適當的遷移使許多事情變得棘手,有時甚至是不可能的 – danidee