2012-07-20 28 views
6

Tôi đang cố gắng để ngăn chặn tất cả các cảnh báo sqlalchemy trong khi chạy bộ thử nghiệm của tôi với nosetests. Tôi đọc Turn off a warning in sqlalchemyTắt cảnh báo sqlalchemy trong nosetests

.............................../Users/ca/.pythonbrew/venvs/Python-2.7.3/api/lib/python2.7/site-packages/SQLAlchemy-0.7.5-py2.7-macosx-10.7-x86_64.egg/sqlalchemy/engine/default.py:330: Warning: Field 'random_id' doesn't have a default value 
cursor.execute(statement, parameters) 

tôi bao gồm này trong tập tin __init__.py gói của tôi:

def setup_package(): 
    """Setup the test during the whole session. 

    Run by nosetests 
    """ 
    # Suppress all SQLAlchemy warnings 
    warnings.filterwarnings("ignore", category=sa_exc.SAWarning) 

Với hàng nhập khẩu thích hợp. Tôi biết nó được điều hành bởi nosetests bởi vì tôi đã thử một số công cụ khác mà đưa ra lỗi. Điều duy nhất là nó không có tác dụng gì cả. Cảnh báo vẫn được hiển thị.

Bất kỳ ý tưởng nào?

Cảm ơn!

+0

Tôi không tin cảnh báo "giá trị mặc định" thuộc danh mục 'SAWarning', mà đúng hơn là' Cảnh báo'. Tôi sử dụng bản thân sau: 'ignore: Field '\ w +' không có giá trị mặc định: Warning' và có vẻ như hoạt động – tutuDajuju

Trả lời

4

Dường như mũi ghi đè bất cứ điều gì bạn thiết lập với:

warnings.filterwarnings("ignore") 

Tuy nhiên bạn có thể lọc các cảnh báo trong quá trình kiểm tra mũi với một tùy chọn dòng lệnh để mũi. ví dụ:

$ nosetests --logging-filter=SAWarning 

Tôi thấy rằng điều này vẫn có thể không hoạt động trong mọi trường hợp. Nếu trường hợp này xảy ra, bạn có thể thử:

$ python -W ignore `which nosetests` 
+0

Tương tự có thể được thực hiện trong pytest (mới hơn 3.1) với đối số' pytest -W ' pytest hoặc như một tài sản trong pytest.ini; xem [tài liệu tại đây] (https://docs.pytest.org/en/latest/warnings.html). – tutuDajuju

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