約100の単体テストがあり、カバレッジは%20です。これは、カバレッジを拡大しようとしています。また、これは開発中のプロジェクトなので、新しいテストを追加し続けます。
現在、すべてのビルドの後にテストを実行することは実行可能ではなく、約2秒かかります。
テストに含まれるもの:
- テストフォルダーから読み取られたファイル(一部のHTTPのものをシミュレートするためのデータ駆動型スタイル)
- ローカルWebサーバーへの実際のHTTPリクエストの実行(これはモックするのに非常に苦痛なので、私はしません)
- それらのすべてが単体テストではありませんが、テストする必要のある非常に複雑なマルチスレッドクラスもあり、テストの全体的な動作をテストします。これは機能テストと見なすことができますが、毎回実行する必要があります。
ほとんどの機能には、HTTPの読み取り、TCPの実行などが必要です。これらのテストを変更した場合、プロジェクトの全体像であるため、変更できません。テストを行うのは無意味です。
また、単体テストを実行するための最速のツールはないと思います。私の現在のセットアップでは、フレームワークとしてGallioとnUnitを使用したVSTSを使用しています。VS TS+Gallioも他のものより少し遅いと思います。
この問題を解決するために私に何を勧めますか?少しずつ変更した後に単体テストを実行したいのですが、現在この問題が私の流れを妨げています。
さらなる明確化編集:
コードは高度に結合されています!残念ながら、変更は巨大なrefatoringプロセスのようなものです。そして、そのような大きなコードをリファクタリングするために単体テストが必要な鶏卵症候群がありますが、それをリファクタリングしないと、これ以上単体テストを行うことはできません:)
高度に結合されたコードでは、テストを小さなチャンクに分割することはできません。また、私は個人的なものをテストしません。それは個人的な選択であり、それによって私は非常に速く開発し、それでも大きな利益を得ることができます。
そして、すべての単体テスト(適切な分離を使用)が実際に非常に高速であり、パフォーマンスの問題がないことを確認できます。
さらなる解明:
コードは高度に結合されています!残念ながら、変更は巨大なrefatoringプロセスのようなものです。そして、そのような大きなコードをリファクタリングするために単体テストが必要な鶏卵症候群がありますが、それをリファクタリングしないと、これ以上単体テストを行うことはできません:)
高度に結合されたコードでは、テストを小さなチャンクに分割することはできません。また、私は個人的なものをテストしません。それは個人的な選択であり、それによって私は非常に速く開発し、それでも大きな利益を得ることができます。
そして、すべての単体テスト(適切な分離を使用)が実際に非常に高速であり、パフォーマンスの問題がないことを確認できます。