問題タブ [unity-test-framework]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - IAR Embedded Workbench プロジェクト用に Ceedling を設定するにはどうすればよいですか?
組み込みアプリケーションの新機能を開発しようとしていますが、テスト駆動型のアプローチを使用して開発したいと考えています。
このプロジェクトはピュア C で書かれており、IAR Embedded Workbench 6.60.1.5104 を使用して開発されています。Cortex-M3 デバイスである LPC1788 をターゲットにしており、すべての開発は 64 ビット Windows 7 マシンで行われています。現時点では、単体テストをターゲット ハードウェアではなく PC で実行することに賛成です (RAM はかなり限られています)。
私は組み込み C のテスト駆動開発と呼ばれる主題に関する有用な本に出くわし、Unity、CppUTest、Cedling などのツールについて教えてくれました。 ) 私のプロジェクトのために。ただし、Ceedling を現在の IAR ツールチェーンで動作するように構成するには、どのような手順を踏む必要があるのか正確にはわかりません。
Ceedling をインストールして「blinky」サンプル プロジェクトを作成し、IAR ツールチェーンを使用してビルドおよびテストしようとしています。iccarm.exe
パスに追加し、blinky/project.yml
以下のように編集しました。
これとデフォルトの唯一の違いproject.yml
は、2 番目の:tools
セクションの内容です。
私は正しい方向に向かっていると思いiccarm.exe
ますが、ツールチェーンのこれらすべての部分に使用する正しい実行可能ファイルであるかどうか、およびどの引数を渡す必要があるかはわかりません。
IAR ツールチェーンを使用してブリンキー プロジェクトをビルドおよびテストするように Ceedling を構成できれば、実際のプロジェクトに同じ構成を適用できるはずです。ここで実行してみるとrake
、次の出力が得られます。
これは、テスト ファイル プリプロセッサがbuild/test/preprocess/files
ディレクトリの下にテスト ファイルをコピーする必要があるためだと思いますが、現在は発生していません。
少し調べてみたところ、参考になりそうなUnity の設定ファイルの例を見つけました。私が使用しているような IAR EW/Cortex M3 環境向けです。これにより、 Ceedling で指定する必要がある構成オプションが示される場合がありますproject.yml
。
Ceedling にblinky
IAR ツールチェーンを使用してプロジェクトをビルドおよびテストしてもらうことができれば、実際のプロジェクトで動作するように調整できることを願っています。どんな助けでも大歓迎です。
c - Ceedling のループでテストを実行できますか?
Ceedling/Unity を使用するのは初めてです。モジュールにさまざまな入力テスト ポイントを与え、出力値をチェックすることでテストしています。しかし、私はこれを何度も行う必要があります。これは私が試したようなものです(「for」ループを使用):
そして、テストに合格したことがわかりますが(期待値と実際の値はデルタ内にあります)、全体的なテストの概要にはこれが表示されます
これは、1 つのテスト関数 = 1 つのテストであることを示唆しています。興味深いことに、ループを介して、expected と actual のすべての値を出力できます (したがって、ループは完全に実行されます)。では、テストをループに入れる方法はありますか? それとも別の方法で繰り返しますか?それとも、単体テストのルールに違反していますか?
ありがとう。