0

私はテスト駆動型の C 開発に取り組み始めています。

次のようなコマンドを実行して、CMock を使用してモック クラスを生成しました。

ruby cmock.rb ../../../src/util.h

私の現在のパッケージ構造は次のとおりです。

app/root
  | bin
      | *.*
  | build
      | *.*
  |- cmake
     |- modules
        |- CodeCoverage.cmake
  |- coverage
      |- *.*
  |- external
      |- Unity
      |- CMock
      |- CMakeLists.txt
  |- src
      |- *.c
      |- *.h
      |- CMakeLists.txt
  |- mocks
      |- *.c
      |- *.h
      |- CMakeLists.txt
  |- tests
      |- *.c
      |- *.h
      |- CMakeLists.txt
  |- CMakeLists.txt

src をライブラリとしてコンパイルするための CMakeLists.txt セットアップがあります。

add_library(app SHARED ${SOURCE_FILES})

テストは、実行可能ファイルとしてコンパイルするようにセットアップされています。

add_executable(tests ${TEST_SOURCES})

target_link_libraries(tests app Unity mocks)

そして、モックはライブラリとしてコンパイルするようにセットアップされています:

add_library(mocks ${MOCK_SOURCES})

target_link_libraries(mocks app Unity CMock)

モックヘッダーの複数の場所を試して遊んでいますが、複数の定義エラーが発生しないようにする方法の基本がありません。

私のファイル構造または戦略のどこが間違っているかについて、誰かがガイダンスを提供できますか?

4

1 に答える 1

2

ここで答えを参照してください: https://github.com/ThrowTheSwitch/CMock/issues/97

基本的には、各テストに必要なファイルだけをリンクすることになります。Unity を使用すると、すべてのテストが独自の実行可能ファイルになります。

于 2016-10-27T14:28:28.797 に答える