Pythonのロギングモジュールを使用しています。
単体テスト (py.test を使用) の場合、テストが起動されるたびに、いくつかのログ情報が特定のファイルに送られます。統合サーバーでは、誰かがコードをプッシュするたびに (私たちも git を使用します:) テストを実行します。
問題は、ユーザー B がテストを実行しようとしたときにユーザー A によってファイルが作成されると、ユーザー B には同じファイルに書き込む権限がないため、テストが失敗することです。
これまでのところ、ファイルのアクセス許可を手動で変更しましたが、汚い解決策のように見えます。また、ユーザーごとにログ ファイルを作成することも考えましたが、これも適切ではありません。
テストでログを記録するためのコードは次のとおりです。
logging.basicConfig(level=logging.DEBUG,
format='%(asctime)s %(name)-12s %(levelname)-8s %(message)s',
datefmt='%m-%d %H:%M',
filename='/tmp/py.test.log',
filemode='w')
log.setLevel(logging.DEBUG)
log.addHandler(logging.StreamHandler())
この問題を回避する方法はありますか? 多分 filemode = 'a' を使用することでそれができるかもしれませんが、毎回新しいファイルが必要だと仮定しましょう (正直なところ、これは実際の問題よりも好奇心ですが、それでも正しくやりたいと思っています)
ありがとう :)