Eclipse Juno に C++ プロジェクトがあり、Boost Unit Test Framework を使用しています。正式な単体テストは初めてなので、まだワークフローに取り組んでいます。
私のワークスペースには 2 つのプロジェクトが含まれています。
(1) 私の C++ プロジェクト
(2) (1)のクラスをテストする単体テストプロジェクト
各単体テストを作成するときに、必要なディレクトリとファイルを (1) から (2) に仮想ディレクトリとしてインポートします。
これはソース ファイルでは問題なく機能しますが、ヘッダー ファイルでは機能しないようです。
たとえば、 unit_test.cpp をコンパイルする
#include "foo/bar.h"
戻り値
../unit_tests.cpp:8:30: error: foo/bar.h: No such file or directory
その中に仮想ディレクトリ foo
がありますがbar.h
。
Eclipse の "Open Declaration" コマンド (F3) を使用する#include "foo/bar.h"
と、ファイルが開かれますが、実際にはフォルダーに存在しないため、コンパイラーはファイルを見つけることができません (推測)。
コンパイラが非仮想ディレクトリ パスを使用して「実際の」ソース ファイルをコンパイルしていることに気付きましたが、明らかにこれはヘッダー ファイルに対して自動的に行われません。
ワークスペース参照インクルード パスをコンパイラに追加することで問題を解決しました。たとえば
${workspace_loc:/my C++ Project}
、これで問題は解決しましたが、とにかく実際のファイルへの参照を作成する必要があるときに、仮想ファイルを使用する意味は何ですか?
私の質問は次のとおりです。
(*) これは良いワークフローですか?
(*) ワークフローを改善するにはどうすればよいですか?
(*) 他の人はどのように Eclipse/IDE を使用して単体テストを管理していますか?