2016-06-29 11 views
0

私は実際にOdooのドキュメントのおかげで作成したユニットテストを実行しようとしています。私はこのように私のモジュールを構築しましたODOO [V8]ユニットテスト

module_test 
- __init__.py 
    __openerp.py__ 
... 
- tests 
    __init__.py 
    test_1.py 

インサイド 'module_test /テスト/ のinitの.py'、私は「module_test /テスト/ TEST_1、 "輸入TEST_1" インサイドを持っています。 py "、私は持っている:"輸入テスト+私が書いたテストシナリオ。

その後、私は、サーバーを実行するコマンドラインを起動し、私は追加します。 「-u module_test --log-レベル=テスト--test-有効にする」モジュールを更新し、テストをアクティブにするためには、

実行しますシェルは "すべての事後テストが0.00秒、0回"と返します。 実際、テストは実行されません。

次に、構文エラーを追加しました。そのため、サーバーはファイルをコンパイルできませんでしたが、シェルは同じ文を返しました。ファイルが無視され、サーバーがファイルをコンパイルしようとしていないように見えます...なぜそれほど理解できませんか?

私はいくつかのOdooソースモジュールをチェックしました。例えば、 'sale'です。 販売テストを実行しようとしましたが、シェルは以前と同じ値を返しました。 販売テストで構文エラーを追加しました。シェルは同じ値を返しました。

誰もこの予期しない動作について考えていますか?

+0

サーバを再起動しているときに、データベース名を指定してください:元については を、./odoo.py -d db_nameに-i module_test --test-有効 –

+0

正確なコマンドラインは次のとおりです。 「パイソン/ .../openerp-server --config = ... -d db_name -u module_to_update --log-level = test --test-enable 'そうですね! – Florian

答えて

1

あなたは、テストクラスのpost_installデコレータを使用してみてください。

例:

from openerp.tests import common 

@common.post_install(True) 
class TestPost(common.TransactionCase): 

    def test_post_method(self): 
     response = self.env['my_module.my_model'].create_post('hello') 
     self.assertEqual(response['success'], True) 

テストは、あなたのモジュールを更新せずに速く行う、あなたが

せずにテストを実行することができますようにするには

-u module_test

あなたは

--load = module_test

を使用する場合、私はそのodooテストドキュメントは本当に悪いです認めざるを得ません。単体テストをodooで動作させる方法を理解するのに一週間かかりました。

関連する問題