2012-06-24 30 views

Trả lời

11

Có rất nhiều sự lựa chọn trong PyDev tùy thuộc vào những gì bạn muốn:

  1. Kích chuột phải vào một thư mục và chọn 'run as> Python đơn vị kiểm tra' (sẽ chạy tất cả các module bên dưới dir như unit- kiểm tra).

  2. Nhấp chuột phải vào nhiều mô-đun python và chọn 'chạy dưới dạng> Kiểm tra đơn vị Python' (sẽ tải các kiểm tra cho tất cả các mô-đun đó và chạy chúng).

  3. Tạo mô-đun nhập tất cả các thử nghiệm có tên khác và chọn 'chạy dưới dạng> kiểm tra đơn vị Python' cho mô-đun đó.

tức là .:

from test_mod1 import Test as Test1 
from test_mod2 import Test as Test2 
+0

Đề xuất # 3 chính xác là những gì tôi yêu cầu, cảm ơn. – Graeme

+2

Chỉ cần lưu ý, nếu nó trở nên lớn, bạn có thể muốn tự động tạo ra cái gì đó với cái gì đó như cog (http://nedbatchelder.com/code/cog/) –

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 

tệp này sẽ nhập tất cả các mô-đun bắt đầu bằng 'test_' trong cùng một thư mục và thêm tất cả các biến vào biến số suite.

suite nên được chạy bởi pydev nhưng tôi không thể kiểm tra - tôi không có pydev.

+0

Không thực sự giải quyết cụ thể là chạy trong PyDev. – Graeme

Các vấn đề liên quan