`__name__ == "__main __" を使用します。`クラス内でその実装 `unittest.TestCase`

Schellekens Yehoshaphat:

私が持っているunittest.TestCase非常に重いセットアップクラスで

私は、コードをメインとして起動された場合、それはモックを使用して実行し、それは次のようにインポートをトラフ実行する場合、完全なデータチェックを実行したいと思います:

import unittest
from utilities import create_full_data,create_mock_data

if __name__ == "__main__":
    print(' I want to run this block if code starts from here')
    data_to_check=create_mock_data()
else:
    print(' I want to run this block if imported')
    data_to_check = create_full_data()


class Test_payer_seg(unittest.TestCase):

    @classmethod
    def setUpClass(cls):
        cls.data_to_test = data_to_check

    def test_data_qaulity(self):
        self.assertTrue(1==1)

問題は、ボンネットの下にあるために発生するようですnosetests検出Pythonのテストのようになり、内部プロセスとしてそれを実行し、したがって、__name__おそらく「メイン」になることはできません。

どのように私はそれがメインを起動された場合、モックとしてそれを実行するフローを作成することができますか?

私が使用してそれを実行しているため、この問題が起こることがあります pycharm

ःAemke:

pycharmユニットテストとしてそれを認識し、自動的にインストールユニット・テスト・パッケージを使用してそれを実行します。新しい作成することができますPythonの 設定をスクリプトの完全なパスと作業ディレクトリで。これはあなたの実行されるmainユニットテストパッケージを使用せずにセクションを。

おすすめ

転載: http://10.200.1.11:23101/article/api/json?id=4682&siteId=1