簡體   English   中英

在PyCharm中運行OpenERP 7單元測試

[英]Run OpenERP 7 unittests in PyCharm

我可以按照此處的說明運行我的OpenERP v7附加組件的單元測試。

PyCharm中,我通過在運行/調試配置中添加Python配置來完成它,如下所示:

腳本:

/home/juliocesar/work/projects/my_project/openerp-server

腳本參數:

--addons-path=openerp/addons,openerp/addons/my_addons
--log-level=test
--database=my_project_db_test
--db_host=localhost
--db_user=test
--db_password=123
--init=my_addon
--test-enable
--stop-after-init

它成功運行但以文本日志格式顯示標准輸出,如下所示:

2015-04-24 13:47:55,101 12340 TEST my_project openerp.modules.module: module my_addon: executing 1 `fast_suite` and/or `checks` sub-modules
2015-04-24 13:47:55,101 12340 TEST my_project openerp.modules.module: test_change_old_received_to_contingency (openerp.addons.my_addon.tests.test_my_addon.TestMyItems)
2015-04-24 13:47:55,101 12340 TEST my_project openerp.modules.module: ` Test patch to change old received status to contingency.
2015-04-24 13:47:55,110 12340 TEST my_project openerp.modules.module: Ran 1 tests in 0.006s
2015-04-24 13:47:55,110 12340 TEST my_project openerp.modules.module: OK

它顯示運行我在項目my_project附加組件my_addon中創建的以下測試的結果,位於/home/juliocesar/work/projects/my_project/openerp/addons/my_addon/tests/test_my_addon.py

from openerp.tests.common import TransactionCase
import unittest2

class TestMyItems(TransactionCase):

    def test_change_old_received_to_contingency(self):
        """Test patch to change old received status to contingency."""
        self.assertTrue(True)

if __name__ == '__main__':
    unittest2.main()

我想要的是使用Python測試 - > Unittest配置來顯示帶有紅色/綠色圖標的測試輸出和用於測試結果的PyCharm接口。

PyCharm unittest配置

Unittest配置需要測試所在的腳本文件,如果我指定文件,PyCharm會在文件中找到所有測試,但由於數據庫(以及其他參數,如openerp-server腳本和上面指定的其余參數來運行OpenERP測試)而產生錯誤)未配置:

PyCharm unittest結果

這是運行此配置的結果:

/usr/bin/python2.7 /home/juliocesar/apps/pycharm/helpers/pycharm/utrunner.py /home/juliocesar/work/projects/my_project/openerp/addons/my_addon/tests/ false
Testing started at 09:38 AM ...
No handlers could be found for logger "openerp.sql_db"

Process finished with exit code 0

Error
Traceback (most recent call last):
  File "/home/juliocesar/work/projects/my_project/openerp/tests/common.py", line 94, in setUp
    TransactionCase.cr = self.cursor()
  File "/home/juliocesar/work/projects/my_project/openerp/tests/common.py", line 55, in cursor
    return openerp.modules.registry.RegistryManager.get(DB).db.cursor()
  File "/home/juliocesar/work/projects/my_project/openerp/modules/registry.py", line 193, in get
    update_module)
  File "/home/juliocesar/work/projects/my_project/openerp/modules/registry.py", line 209, in new
    registry = Registry(db_name)
  File "/home/juliocesar/work/projects/my_project/openerp/modules/registry.py", line 76, in __init__
    cr = self.db.cursor()
  File "/home/juliocesar/work/projects/my_project/openerp/sql_db.py", line 484, in cursor
    return Cursor(self._pool, self.dbname, serialized=serialized)
  File "/home/juliocesar/work/projects/my_project/openerp/sql_db.py", line 182, in __init__
    self._cnx = pool.borrow(dsn(dbname))
  File "/home/juliocesar/work/projects/my_project/openerp/sql_db.py", line 377, in _locked
    return fun(self, *args, **kwargs)
  File "/home/juliocesar/work/projects/my_project/openerp/sql_db.py", line 440, in borrow
    result = psycopg2.connect(dsn=dsn, connection_factory=PsycoConnection)
  File "/usr/lib/python2.7/dist-packages/psycopg2/__init__.py", line 179, in connect
    connection_factory=connection_factory, async=async)
OperationalError: FATAL:  database "False" does not exist

那么,如何使用PyCharm測試配置指定運行OpenERP v7 unittest所需的參數?

我使用了PyCharm 4.0.6 Build#PY-139.1659,但它在PyCharm 5中也不起作用。

您可以使用cmd在Windows中調試使用cmd進入odoo.exe文件夾C:\\Program Files (x86)\\Odoo 8.0-20150719\\server並執行此命令

odoo --log-level=debug

Linux中的終端或終端輸入到odoo.py文件(/ usr / bin /)並執行此命令

python odoo.py --log-level=debug

tape ctrl + z或ctrl + c來取消激活日志。

你會在/ var / log / odoo /中找到一個文件(openerp-server.log)

在運行/調試窗口中,您是否將當前工作目錄字段的值設置為/home/juliocesar/work/projects/my_project 這將有助於PyCharm尋找相對路徑以及進口。

您還可以嘗試在參數列表中提供插件的完整路徑。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM