単体テストを行う前に、次のようなディレクトリがありました
mything.h
mything.cpp
mything2.h
mything2.cpp
driver.cpp // contains main()
Makefile
次にmake
、生成された実行可能ファイルを実行します。この実行可能ファイルは、ルート ディレクトリに生成されました (これを と呼びますrunme
)。
今、私は Catch2 https://github.com/catchorg/Catch2/blob/master/docs/Readme.md#topを使用しようとしています。これは、メインのテストファイルを 1 つ持つことも示しています (定義があります)。 )。だから私は自分のコードを次のように再編成しました
src/
mything.h
mything.cpp
mything2.h
mything2.cpp
driver.cpp // contains main()
test/
catch2.hpp // downloaded off their website in single header option
sometest.cpp // also contains a main per catch2
Makefile
実際のコードを参照しないダミーのテストをいくつか作成しました。これで、すべてのテストが実行されますmake tester
。./tester
そして、元のアプリケーションを実行するmake
ことができます。./runme
私の質問は、テスト コードからソース コードを実際に呼び出すにはどうすればよいかということです。src
このディレクトリをライブラリに変換する必要がありますか? つまり、テスト コードが c++ で src コードを参照する方法は、私には少しわかりません。
完全な開示のために、私はpython / pytestの世界から来て、ユニットテストまたは適切なプロジェクト構造に関して実際にc ++コードをどのように構造化するのか疑問に思っています。