この記事は何
Python 開発環境を VSCode に移し中、pytest を VSCode 環境で動かそうと色々試すも何故かディスカバリに失敗してしまい、しばらく詰まったのでメモ。
背景
Remote Development で繋いでいる VSCode 環境で、新たに Python プロジェクトを作成しています。
Python 環境は poetry で作成し、テストのため pytest を導入しました。
CUI から pytest が poetry run pytest
問題なく実行できることを確認し、VSCode 上からテストを実行させようとしたところ、テストディスカバリに失敗しました。
原因
VSCode から pytest でテストディスカバリを行う際に、何故か標準出力があると失敗扱いになっていました。
下記の issue などから何かしら標準出力があると失敗することが指摘されています。
https://github.com/microsoft/vscode-python/issues/6594
https://github.com/microsoft/vscode-python/issues/7574
TensorFlow を使っている場合、import tensorflow as tf
するだけで色々 Warning だったりが出てしまいますが、それが原因だったようです。
解決策
上記 issue の通りです。TensorFlow の出力を制御するため、次のようなファイルを .env
という名前でプロジェクトに置きます。
TF_CPP_MIN_LOG_LEVEL='2'
TF のログ出力を制御するための環境変数です。2を設定することで、WARNINGまでは出なくなります。3にするとエラーも出なくなります。
他の種類の標準出力もなんらかの方法で出ないようにできれば、対策できそうです。
以上です。原因が標準出力だということに気づくのに時間かかったので、参考になれば...