テスト駆動開発とは、コードの前にテストを記述し、特定のサイクルを実行することを意味します。
- テストを書く
- テストの確認(実行)
- 量産コードを書く
- テストの確認(実行)
- プロダクションコードのクリーンアップ
- テストをチェック(実行)
私に関する限り、これは、開発ソリューションでプロダクションコードとテストコードを非常に迅速に切り替え、特定のプロダクションコード部分のテストを非常に迅速に実行できる場合にのみ可能です。
今、C ++には多くの単体テストフレームワークが存在しますが(Bost.Test atmを使用しています)、TDDを作成する適切な(ネイティブC ++の)Visual Studio(Plugin)ソリューションは実際には存在しないようです。使用されるフレームワークに関係なく耐えられるサイクル。
「ベアラブル」とは、個別のテストプロジェクトなどを手動で設定しなくても、特定のcppファイルのテストを実行するのがワンクリックのアクションであることを意味します。 。
では、Visual Studioを使用したネイティブC ++開発でTDDサイクルを可能にするツール(プラグイン)とテクニックはどこにありますか?
注:私は無料または「商用」ツールで大丈夫です。
してください:ノーフレームワーク勧告。(フレームワークに専用のVisual Studioプラグインがあり、そのプラグインを推奨する場合を除きます。)
注の編集:これまでの回答は、ユニットテストフレームワークをVisual Studioに統合する方法に関するリンクを提供しています。リソースは多かれ少なかれ、UTフレームワークをコンパイルして最初のテストを実行する方法を説明しています。これはこの質問についてではありません。ユニットテストを手動で維持(!)して実際に生産的に作業するには、vcprojを本番クラスから分離するとオーバーヘッドが大きくなり、TDDが「不可能」になると私は思います。私が知る限り、JavaまたはC#のモノに追加の「プロジェクト」を追加してユニットテストとTDDを有効にしないでください。これは 適切なツールを与えられたC ++で可能になるが、TDD / C ++ / VS用のツールはほとんどないようです(この質問についてです)。
探し回って、正しい方向を目指しているように見えるVisualAssertというツールを見つけました。しかし、残念ながら、広く使われているようには見えません(CppUnit、Boost.Testなどと比較して)。
編集:この質問のコンテキストにコメントを追加します。問題の概要(の一部)の良い要約を示していると思います:(Billy ONealによるコメント)
Visual Studioは、ユーザーが合理的に編集可能な「ビルドスクリプト」を使用しません。1つのプロジェクトで1つのバイナリが生成されます。さらに、Javaには、Javaが完全なバイナリを決して構築しないという特性があります-構築するバイナリは、クラスファイルの単なるZIPです。したがって、個別にコンパイルしてから、JARを手動で(たとえば、7zを使用して)コンパイルすることが可能です。C ++とC#はどちらも実際にはバイナリをリンクしているため、一般的に言えば、そのようなスクリプトを作成することはできません。あなたが得ることができる最も近いのは、すべてを別々にコンパイルしてから、2つのリンクを行うことです(1つは本番用、もう1つはテスト用)。
7z
)コンパイルすることができます。C ++とC#はどちらも実際にはバイナリをリンクしているため、一般的に言えば、そのようなスクリプトを作成することはできません。あなたが得ることができる最も近いのは、すべてを別々にコンパイルしてから、2つのリンクを行うことです(1つは本番用、もう1つはテスト用)。
As far as I am aware, you do not add extra "projects" to a Java or C# thing to enable Unit Tests and TDD,
<-私はこれが正しいとは思いません。通常、C#にも複数のプロジェクトがあります。テストコードを本番用バイナリで出荷したくない場合。