8

私は現在、Atmel Studio 6 で組み込み C++ プロジェクトを開発しています。このプロジェクトには、かなり重要な組み込み部分と重要なビジネス ロジック部分があります。理想的には、ビジネス ロジック コードの単体テストを実行したいと考えています。これらのテストを簡単にビルドして実行できると、単体テストが使用される可能性が高くなります。

デフォルトの avr-gcc コンパイラで Boost 単体テストをコンパイルしようとすると、さまざまなヘッダー ファイルが見つからないため、エラーが発生します。これらのヘッダーは、私が使用している AVR チップセットには実装されていないことを理解しています。ただし、これらのヘッダーは、埋め込まれていない部分の単体テストにのみ使用されるため、専用の単体テスト プロジェクトに配置されています。

単体テストをコンパイルするには、別のコンパイラをセットアップする必要がありますか? インストールされているデフォルトの avr-gcc に別のコンパイラ ツールチェーンを使用して単体テストをコンパイルすることは可能ですか、それとも単体テストを別の場所でコンパイルする必要がありますか? これを行う簡単な方法はありますか?

4

2 に答える 2

5

組み込みソフトウェアを構築するとき、(ハードウェアに依存しない) ビジネス ロジックに対して単体テストを記述し、ホストの x86 アーキテクチャで実行することがあります。

私は通常、同じソース ツリーでEclipse CDT (またはQt Creator ) プロジェクトをビルドし、C++ ロジックがあるフォルダーにアクセスし、単体テスト フレームワークとgccを使用してテスト ケースと共にコンパイルし、x86 アーキテクチャをターゲットにします。EclipseまたはQt Creatorが Makefile を処理してくれます。ここでは、 Boostまたはその他のユニット テスト フレームワークを使用できます。通常、私自身が提供する 50 行のコードと、いくつかのアサート関数が必要です (この方法では、たとえば、最終的な AVR アーキテクチャで同じ単体テストを使用できます)。

私は通常、AVR 用の組み込みソフトウェアをビルドし、x86 用の単体テストをビルドして渡すためのAntタスクを提供するので、継続的統合パネルと簡単に統合できます。

幸運を!。

于 2014-03-07T15:02:51.307 に答える