6

複数のモジュールからテスト ケースを集約して、1 回のテスト実行ですべてを実行し、結果を PyDev UnitTest ウィンドウに表示する最良の方法は何ですか?

4

2 に答える 2

11

必要なものに応じて、PyDev には多くの選択肢があります。

  1. フォルダを右クリックし、'run as > Python unit-test' を選択します (ディレクトリの下のすべてのモジュールを単体テストとして実行します)。

  2. 複数の python モジュールを右クリックし、'run as > Python unit-test' を選択します (これらすべてのモジュールのテストをロードして実行します)。

  3. すべてのテストを別の名前でインポートするモジュールを作成し、そのモジュールに対して [実行] > [Python 単体テスト] を選択します。

すなわち:

from test_mod1 import Test as Test1
from test_mod2 import Test as Test2
于 2012-06-25T10:50:46.480 に答える
0
import sys
import unittest
# add here some import paths
sys.path.append(r'..\..')


if True: #__name__ == '__main__':
    try:
        __file__
    except NameError:
        path = '.'
    else:
        path = os.path.split(__file__)[0]
    caseset = dict()
    def addSuite(suite):
        for case in suite:
            if isinstance(case, unittest.TestSuite):
                addSuite(case)
                continue
            key = case.id()
            if key in caseset:
##                print 'in:', type(case).__name__
                pass
            else:
##                print 'new:', type(case).__name__
                caseset[key] = case

    for filename in os.listdir(path): # could also be os.walk
        if filename.startswith('test_'):
            filepath = os.path.join(path, filename)
            modname, ext = os.path.splitext(filename)
            if os.path.isfile(filepath) and ext.lower() in ('py', 'pyw'):
                mod = __import__(modname)
            else:
                try:
                    mod = __import__(modname)
                except ImportError:
                    ty, er, tb = sys.exc_info()
                    if tb.tb_next:
                        traceback.print_exception(ty, er, tb)
                    continue

            cases = unittest.defaultTestLoader.loadTestsFromModule(mod)
            addSuite(cases)
    l = caseset.values()
    suite = unittest.TestSuite(l)
    ##if __name__ == '__main__':
        ##unittest.TextTestRunner(verbosity=1).run(suite) # run all tests

このファイルは、同じディレクトリ内の「test_」で始まるすべてのモジュールをインポートし、それらすべてをsuite変数に追加します。

suitepydevで実行する必要がありますが、テストできません-pydevがありません。

于 2012-06-24T20:57:12.510 に答える