Cách tốt nhất để tổng hợp các trường hợp thử nghiệm từ nhiều mô-đun sao cho một lần chạy thử nghiệm sẽ thực thi tất cả và trình bày kết quả trong cửa sổ PyDev UnitTest?Tổng hợp nhiều trường hợp thử nghiệm từ nhiều mô-đun để chạy trong PyDev TestRunner
Trả lời
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:
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).
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).
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
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.
Không thực sự giải quyết cụ thể là chạy trong PyDev. – Graeme
- 1. Scalatest hoặc specs2 với nhiều trường hợp thử nghiệm
- 2. Trong Eclipse, làm thế nào để chạy một trường hợp thử nghiệm JUnit nhiều lần
- 3. Làm cách nào để chạy nhiều trường hợp thử nghiệm Python trong một vòng lặp?
- 4. Trường hợp thử nghiệm riêng biệt trên nhiều tệp trong thử nghiệm google
- 5. Tích hợp các trường hợp thử nghiệm PHPT với PHPUnit
- 6. Chạy cùng một trường hợp thử nghiệm JUnit nhiều lần với các dữ liệu khác nhau
- 7. Trường hợp thử nghiệm GWT không chạy: JUnitFatalLaunchException
- 8. Chạy thử nghiệm JUnit từ nhiều dự án trong Eclipse
- 9. Chạy thử nghiệm với hơn một triệu trường hợp thử nghiệm
- 10. Cách đặt chuỗi trường hợp thử nghiệm trong xUnit
- 11. Thử nghiệm tích hợp Grails với nhiều dịch vụ
- 12. Làm thế nào để chạy một trường hợp thử nghiệm duy nhất từ MSTest
- 13. Chạy thử nghiệm PHPUnit nhiều lần
- 14. NUnit trường hợp thử nghiệm không chạy từ kế thừa lớp
- 15. Làm cách nào để chạy thử nghiệm tích hợp?
- 16. Nhiều trường hợp của w3wp.exe
- 17. Fitnesse: Cách chạy thử nghiệm cụ thể trên nhiều bộ thử nghiệm
- 18. Nhiều trường hợp của IntentService trong Android
- 19. Javascript str.search() nhiều trường hợp
- 20. Lặp lại thử nghiệm chạy thử nhiều lần
- 21. Trường hợp thử nghiệm junit máy phát điện
- 22. Sau khi chạy thử trường hợp junit, tôi có nên xóa dữ liệu thử nghiệm liên quan đến trường hợp thử nghiệm này không?
- 23. Android AsyncTask - tránh nhiều trường hợp đang chạy
- 24. Cách chạy nhiều trang web trên một trường hợp apache
- 25. nhiều trường hợp hình ảnh
- 26. Kết hợp các báo cáo thử nghiệm đơn vị từ nhiều dự án Gradle build
- 27. PostgreSQL tổng hợp với nhiều tham số
- 28. Làm cách nào để kết hợp nhiều trường trong QueryParser?
- 29. Làm cách nào để thiết lập một trường hợp thử nghiệm Lưới Selenium Grid để kiểm tra trên nhiều máy?
- 30. Tổng hợp() với nhiều chức năng hơn -
Đề xuất # 3 chính xác là những gì tôi yêu cầu, cảm ơn. – Graeme
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/) –