2010-03-04 16 views
5

Cách viết tắt của pythonic một cách không rõ ràng nhất để xem mô-đun có được cài đặt đúng không? Bằng cách cài đặt đúng tôi có nghĩa là, nó không nâng cao một ImportError: Không có module có tên foo.Cách viết unittest cho việc nhập mô-đun vào Python

+6

Nói chung, không có nhiều thử nghiệm đơn vị. Bạn không tin vào câu lệnh 'import'? Dòng nhập mã rất đơn giản - và dễ kiểm tra - có vẻ như một chút ngớ ngẩn để kiểm tra nó. Tại sao bạn thử nghiệm đơn vị câu lệnh 'import'? –

+0

Vì tôi phải triển khai ứng dụng Django của mình trên một máy chủ khác và nó yêu cầu một số mô-đun bổ sung, tôi muốn đảm bảo rằng tất cả các mô-đun cần thiết được cài đặt. Ví dụ, đảm bảo rằng simplejson được cài đặt cho python 2.5. Tất nhiên tôi tin tưởng vào các báo cáo nhập khẩu, tôi chỉ không muốn quên cài đặt một mô-đun tôi cần. – DrDee

+1

Dường như bạn đang chạy thử nghiệm trên môi trường sản xuất, đó là ... lạ. Dù sao, bạn đang thử nghiệm rằng bạn có phụ thuộc thích hợp, đó là một công việc cho người quản lý gói. Hoặc là tạo ra các gói cho ứng dụng của bạn, hoặc sử dụng các trình quản lý phụ thuộc pythonic (pip và pip install -r requirements.txt trong virtualenv đến trong tâm trí). – Almad

Trả lời

5

As I have to deploy my Django application on a different server and it requires some extra modules I want to make sure that all required modules are installed.

Đây không phải là hoàn cảnh thử nghiệm đơn vị.

Đây là quy trình sẵn sàng sản xuất và không phải là - về mặt kỹ thuật - thử nghiệm ứng dụng của bạn.

Đó là truy vấn về môi trường. Của chúng tôi bao gồm hàng chục thứ.

Bắt đầu bằng một tập lệnh đơn giản như thế này. Thêm mỗi điều bạn cần phải chắc chắn tồn tại.

try: 
    import simplejson 
except ImportError: 
    print "***FAILURE: simplejson missing***" 
    sys.exit(2) 
sys.exit(0) 

Chỉ chạy tập lệnh này trong từng môi trường như là một phần của quá trình cài đặt. Nó không phải là một bài kiểm tra đơn vị nào cả. Đó là điều kiện tiên quyết để cài đặt.

+0

Cảm ơn rất nhiều, và xin lỗi vì sử dụng các thuật ngữ sai, nó rõ ràng là đặt một bó toàn bộ của người dân trên bàn chân sai :) – DrDee

1

Tôi không thấy lý do tại sao bạn cần phải kiểm tra điều này, nhưng một cái gì đó như:

def my_import_test(self): 
    import my_module 

Nếu một lỗi nhập khẩu được nâng lên các thử nghiệm đã thất bại, nếu không muốn nói nó đi.

+0

Có lẽ tôi không rõ ràng về những gì tôi cần. Tôi muốn kiểm tra xem việc nhập khẩu một mô-đun có thành công hay không vì vậy tôi có thể xem những mô-đun nào bị thiếu và cần phải được cài đặt. Vì vậy, làm thế nào tôi có thể sử dụng một self.assertUnequals ... tuyên bố – DrDee

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