web-dev-qa-db-ja.com

PyCharmでOpenERP7ユニットテストを実行します

説明されているように、OpenERP v7アドオンの単体テストを実行できます ここ

PyCharmでは、Python構成をRun/Debug Configuration 次のように:

スクリプト:

/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_addonのプロジェクトmy_projectのアドオン/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 config

単体テストの構成には、テストが配置されているスクリプトファイルが必要です。ファイルを指定すると、PyCharmはファイル内のすべてのテストを検出しますが、データベース(およびopenerp-serverスクリプトや上記で指定した残りのパラメーターなどの他のパラメーターを実行するため)が実行されるため、エラーが発生します。 OpenERPテスト)が構成されていません:

PyCharm unittest results

これは、この構成を実行した結果です。

/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ユニットテストを実行するために必要なパラメーターを指定するにはどうすればよいですか?

PyCharm 4.0.6ビルド#PY-139.1659を使用しましたが、PyCharm5でも機能しません。

44
juliocesar

Windowsでcmdを使用してデバッグし、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

ctrl + zまたはctrl + cをテープで貼り付けて、ログを非アクティブ化します。

/ var/log/odoo /にファイル(openerp-server.log)があります。

3
Yacine Bs

実行/デバッグウィンドウで、現在の作業ディレクトリフィールドの値を/home/juliocesar/work/projects/my_projectに設定しましたか?これは、PyCharmが相対パスとインポートを探すのに役立ちます。

引数リストでアドオンへのフルパスを指定することもできます。

1
Sanju