• pytest: helps you write better programs — pytest documentation
  • mutmut · PyPI
    • 全部にいきなりかけてもいいけどcoverageを先にした方が数が減っていいかも
      • Coverage.py — Coverage.py 5.0a6 documentation
      • テストされていない範囲のミューテーションがテストで検知されないのは自明なので
      • mutmutでは300個を超える検出がされてしまい、情報洪水
      • 個別のmutationを見てそれをどうカバーするか考えるより、まずはcoverage htmlでcoverされてな範囲にどういうところがあるかをざっと見た方が良さそう
      • →16個に減った
      • コマンドラインの-tオプションでテストする仕組みにしているのをそのまま呼んだので、argparse部分がcoverageに含まれて、各種オプションの値を書き換えたテストをされてしまっている
    • 面白かった検出
      • 昔random.choiceを使っていた頃にテストの再現性のためにrandom.seedを固定していたが、今は乱数を使わなくなっている。mutmutは「乱数のシードを変更してもテストの結果に違いがないぞ」と指摘してきた
  • # pragma: no mutate