3

単体テストを実行するときに、非推奨の警告を表示したいと思います。Python 2.7 の廃止予定の警告が沈黙しているようです。以下のページから引用します。

Python 2.7 では、デフォルトで開発者にとって重要な警告のみを無効にするというポリシー決定が行われました。DeprecationWarning とその子孫は、特に要求されない限り無視されるようになり、アプリケーションによってトリガーされた警告がユーザーに表示されなくなりました。この変更は、Python 3.2 になったブランチでも行われました。(stdlib-sig で議論され、issue 7319 で実行されました。)

後で、単体テストの実行中に非推奨の警告が表示されるように見えます。

また、unittest モジュールは、テストの実行時に廃止予定の警告を自動的に再度有効にします。

簡単に言えば、私にはうまくいかないので、何か間違ったことをしているに違いありません。次のコードでテストしました。

import warnings
import unittest

def spam():
    warnings.warn('test', DeprecationWarning, stacklevel=2)
    return 'spam'

class Eggs(object):
    def __init__(self):
        self.spam = spam()

class Test(unittest.TestCase):
    def test_warn(self):
        eggs = Eggs()
        self.assertEqual('spam', eggs.spam)

次に、コードを実行します (に保存されていますspam.py)。

python -m 'unittest' spam

これにより、次の出力が得られます。

.
----------------------------------------------------------------------
Ran 1 test in 0.001s

OK

非推奨の警告はありません。問題は次のとおりです。ここで何が間違っていますか?

4

2 に答える 2

2

私は Python 開発に Eclipse を使用しているため、提案されたものとは異なるソリューションを使用することにしました。環境変数を使用して警告を有効にすることもできます。環境変数がdeprecationPYTHONWARNINGSに設定されている場合、警告が表示されます。default

Eclipse (PyDev) では、インタプリタを変更して環境変数を含めることができます。このようにして、そのインタープリターを使用するプロジェクトでのみ有効になります。

pydev インタープリター構成

于 2014-08-27T09:50:27.443 に答える