odoo官方文檔第八章 Testing in odoo (odoo的測試)


Testing in odoo

有許多方法可以測試應用程序。 在Odoo,我們有三種測試

  • python單元測試:用於測試模型業務邏輯
  • js單元測試:這是隔離測試javascript代碼所必需的
  • tours:這是一種集成測試形式。 游覽確保python和javascript部分正確地相互通信。

Testing Python code

Odoo使用unittest為測試模塊提供支持。

要編寫測試,只需在模塊中定義test子包,就會自動檢查測試模塊。 測試模塊的名稱應該以test_開頭,並且應該從tests / __ init__.py導入,例如:

your_module
|-- ...
`-- tests
    |-- __init__.py
    |-- test_bar.py
    `-- test_foo.py

__init__.py包含:

from . import test_foo, test_bar

警告
未從tests / __ init__.py導入的測試模塊將不會運行

在8.0版中更改:之前,測試運行器只運行添加到兩個列表fast_suite的模塊並checkstests / __ init__.py。 在8.0中,它將運行所有導入的模塊

class odoo.tests.common.TransactionCase(methodName='runTest')

TestCase,其中每個測試方法都在自己的事務中運行,並帶有自己的游標。 回滾事務並在每次測試后關閉游標。

browse_ref(xid)

返回提供的外部標識符的記錄對象

Parameters:xid --完全限定的外部標識符,格式為module.identifier

Raise: ValueError if not found

Returns:Basemodel

ref(xid)

返回提供的外部標識符的數據庫ID,get_object_reference的快捷方式

Parameters:xid- -完全限定的外部標識符,格式為module.identifier

Raise: ValueError if not found

Returns:registered id

默認情況下,在安裝相應模塊后立即運行測試。 測試用例也可以配置為在安裝所有模塊后運行,而不是在模塊安裝后立即運行:

odoo.tests.common.at_install(flag)

設置測試的at-install狀態,該標志是一個布爾值,指定在模塊安裝期間測試應該(True)還是不應該(False)運行。

默認情況下,在開始安裝下一個模塊之前,在安裝模塊后立即運行測試。

odoo.tests.common.post_install(flag)

設置測試的安裝后狀態。 該標志是一個布爾值,指定在一組模塊安裝之后是否應該運行測試。

默認情況下,在安裝當前安裝集中的所有模塊后,不會運行測試。

最常見的情況是使用TransactionCase並在每個方法中測試模型的屬性:

class TestModelA(common.TransactionCase):
    def test_some_action(self):
        record = self.env['model.a'].create({'field': 'value'})
        record.some_action()
        self.assertEqual(
            record.field,
            expected_field_value)

    # other tests...

測試方法必須從test_開始

Running tests

如果在啟動Odoo服務器時啟用了--test-enable,則在安裝或更新模塊時會自動運行測試。

從Odoo 8開始,不支持在安裝/更新周期之外運行測試。

Testing JS code

Qunit test suite

Odoo Web包括對Odoo Web的核心代碼和您自己的javascript模塊進行單元測試的方法。 在javascript方面,單元測試基於QUnit,其中包含許多幫助程序和擴展,可以更好地與Odoo集成。

要查看運行器的外觀,找到(或啟動)啟用了Web客戶端的Odoo服務器,然后導航到/ web / tests這將顯示運行器選擇器,它會列出所有帶有javascript單元測試的模塊,並允許啟動任何 他們(或所有模塊中的所有javascript測試)。

單擊任何運行器按鈕將在捆綁的QUnit運行器中啟動相應的測試:

Writing a test case

本節將盡快更新。

Integration Testing(集成測試)

單獨測試Python代碼和JS代碼非常有用,但它並不能證明Web客戶端和服務器協同工作。 為了做到這一點,我們可以編寫另一種測試:游覽。 游覽是一些有趣的業務流程的迷你場景。 它解釋了應遵循的一系列步驟。 然后,測試運行器將創建一個phantom_js瀏覽器,將其指向正確的URL並根據場景模擬點擊和輸入。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM