単体テストを実行するときに、非推奨の警告を表示したいと思います。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
非推奨の警告はありません。問題は次のとおりです。ここで何が間違っていますか?