「Pythonで単体テストを書くとき、実装ファイルの中にテストコードを書いてはいけないのですか?」 RustやGoといったモダンなコンパイル言語の経験があるエンジニアが、Pythonのプロジェクト構成を見たときに抱く素朴な疑問です。 Rustでは src/lib.rs の中に mod tests を書くのが当たり前ですし、Goでも main.go の隣に main_test.go を置くのが一般的です。 しかし、Pythonのデファクトスタンダードは 「src/ とは別に tests/ ディレクトリを切る」 というスタイルです。 なぜ言語によってテストコードの配置場所(文化)がこれほど異なるのでしょうか? その背景には、単なる「好み」の違いではなく、「コンパイルの仕組み」 と 「配布(デプロイ)の仕組み」 という技術的な必然性が隠されています。 本記事では、Rust, C++, Pytho

