私たちのユニットテストでコードカバレッジを使用すると、奇妙な結果に遭遇しました。AssemblyInitializeがコードカバレッジで測定されない
AssemblyInitialize
関数では、(AutoMapper
,AbstractFactories
のような)初期化作業を行い、この関数が正しく実行されます。
コードカバーは、AssemblyInitialize
から呼び出される関数のカバレッジがないことを示しています。これは設計によるのですか、私はここで何か間違っていますか?
私たちのユニットテストでコードカバレッジを使用すると、奇妙な結果に遭遇しました。AssemblyInitializeがコードカバレッジで測定されない
AssemblyInitialize
関数では、(AutoMapper
,AbstractFactories
のような)初期化作業を行い、この関数が正しく実行されます。
コードカバーは、AssemblyInitialize
から呼び出される関数のカバレッジがないことを示しています。これは設計によるのですか、私はここで何か間違っていますか?
私はデザインとして行くと、それは他のものになるにはあまりにも特定のようです。オープンソースのカバレッジツールで似たようなことをしている人は、これが事故であることは奇妙であり、非常に珍しいバグでしょう。
私のTDD純粋主義者は、どのタイプ(アセンブリ/クラス)のセットアップ/ティアダウンも実際にテスト自体の一部ではないため、カバレッジに含めないでください。その代わりに、テストセットアップ/初期化が失敗したことに頼るのではなく、そのコードに対して個別の特定のテストを行う必要があります。
他の.NETツール(1つはdotCover)は、テストでカバレッジを行い、そのような設定を実行している間に得られた結果も除外します。しかしこれは知られている事実ではなく推測です。
ええ、おそらく私はそれのための別のユニットテストを作成する必要があります。しかし、コードは本当に高速ではありません(例えばAutomapper.Configureは1回のテストを実行するだけで時間がかかります)。私もそれがバグか何かであるとは想像できません...それはおそらくより概念的なものです。 –