組み込み型自動化ユニットテスト(2)-Ceedling

4600 ワード

「テスト駆動の組み込みC言語開発」という本を初歩的に読んだことがあると思いますが、その考え方も大体理解しました.しかし、本の内容に従って実践しようとすると、本で述べたUnityフレームワークやCpptestでは、具体的な使用や操作資料を検索するのはほとんど難しいようです.このシリーズは、私たちがよく知っている環境の中でテストの枠組みを構築することを皆さんに教えるために、次は正式に始めます.
Ceedlingとは
ceedingはruby言語で作成されたc言語自動化テストフレームワークであり、CMock、Unity、CExceptionなどの複数のオープンソースプロジェクトを統合した自動化テストツールである(ついに本で学んだUnityが現れたのではないか).
なぜceedlingを使用するのか、もちろんシングルチップマシンのエンジニアリングでUnityフレームワークを直接使用してシミュレーション実行で関数をテストすることができます.ここにはGithubで構築された海外のネットユーザーがいます.クローンして参考にしてください.https://github.com/smikai/stm32f4-keil-unityしかし、このような問題は、テストコードが私たちのエンジニアリング構造と交錯しており、正常なエンジニアリング構造に従ってテストコードを作成しなければならないことです.小さなエンジニアリングにしか適用できません(ここで私が何を言っているのか理解できないかもしれませんが、辛抱強く下を見て、ceedlingでユニットテストを行うエンジニアリング構造を見たら、理解します).
テスト環境の構築
ceedingはruby言語で書かれているので、コンピュータにrubyの解釈器をインストールする必要があるのは明らかです.同時に、テストフレームワークに私たちのコンピュータで実行できるテストプログラムをコンパイルするために、gccコンパイラをインストールする必要があります.次はWindos環境で紹介しますが、Linuxを使っている場合は、次の説明を見てもLinuxでどのように構築するかをすぐに知ることができると信じています.
  • Rubyをインストールhttps://rubyinstaller.org/インストールRubyをダウンロードしてbinパスをシステム環境変数PATHに追加し、コマンドウィンドウを開いて
    ruby -v
    
    を使用して正しい
  • がインストールされているかどうかを確認します.
  • インストールCeedling ceedlingはruby gemミラーソースのソフトウェアです.コマンドウィンドウを開いて、rubyのインストールパスにceedlingコンポーネントを追加するコマンドを入力します.
    gem install ceedling
    
  • インストールgcc Windowsプラットフォームでgccコマンドを実行するにはmingw 64をインストールする必要がありますhttp://www.mingw-w64.org/doku.php/download/mingw-buildsインストール中は、インストールパスとプロセッサフレームワークがx 64に変更された場合を除き、他のパラメータはデフォルトのままです.インストールが完了したら、同じくMinGW 64インストールディレクトリの下のbinパスをPATHに追加します.その後、CMDウィンドウでコマンドを使用してインストールに成功したかどうかを確認します.
    gcc -v
    

  • サンプルエンジニアリングの実行
    私たちはGithubから外国の大神が書いたceedlingの枠組みで構築された工事を引き出した.このプロジェクトとそのreadmeに付属する文章のリンクも私が最初にceedlingを勉強した肝心な資料で、もちろんあなたはその文章を見ないことを選ぶことができて、これから私がしなければならないのは再びSTM 32をプラットフォームにして、作者のこのブログを書き換えることです.
    https://github.com/dimonomid/test_ceedling_example
    ダウンロード後、rubyは中国語のサポートが悪いため、パスに中国語のコンパイルがあれば直接エラーを報告することを覚えています.まず、プロジェクトディレクトリのtest_に入ります.ceedlingフォルダ内.このパスの下でコマンドウィンドウを開き、コマンドを入力します.
     ceedling test:all
    

    その後ceedlingはサンプルエンジニアリングのテストファイルを自動的にコンパイルし、テストを実行し、コマンドウィンドウにもコンパイルとテスト中の表示が表示されます.
    Test 'test_adc_handler.c'
    -------------------------
    Compiling test_adc_handler_runner.c...
    Compiling test_adc_handler.c...
    Compiling unity.c...
    Compiling adc_handler.c...
    Compiling cmock.c...
    Linking test_adc_handler.out...
    Running test_adc_handler.out...
    
    
    Test 'test_appl_adc.c'
    ----------------------
    Compiling test_appl_adc_runner.c...
    Compiling test_appl_adc.c...
    Compiling mock_bsp_adc.c...
    Compiling mock_adc_handler.c...
    Compiling mock_xc.c...
    Compiling appl_adc.c...
    Linking test_appl_adc.out...
    Running test_appl_adc.out...
    
    
    Test 'test_itoae.c'
    -------------------
    Compiling test_itoae_runner.c...
    Compiling test_itoae.c...
    Compiling itoae.c...
    Linking test_itoae.out...
    Running test_itoae.out...
    
    -----------
    TEST OUTPUT
    -----------
    [test_adc_handler.c]
      - ""
    
    [test_appl_adc.c]
      - ""
    
    [test_itoae.c]
      - ""
    
    --------------------
    OVERALL TEST SUMMARY
    --------------------
    TESTED:  8
    PASSED:  8
    FAILED:  0
    IGNORED: 0

    はい、私たちのテストフレームワークはすでに実行されています.次のいくつかの編では、ceedlingとその統合コンポーネントの機能と使い方を詳しく紹介します.楽しみにしてください.
    参考資料
  • Ceedling Unityなどの組み込み型テストフレームワークとツールの紹介ホームページ:http://www.throwtheswitch.org/
  • CeedlingのGithubホームページ:https://github.com/ThrowTheSwitch/Ceedling
  • CMockのGithubホームページ:https://github.com/ThrowTheSwitch/CMock
  • UnityのGithubホームページ:https://github.com/ThrowTheSwitch/Unity
  • 国外の大神はCeedlingを使って1つの電圧の測量器のサンプルの工事のブログを開発します:https://dmitryfrank.com/articles/unit_testing_embedded_c_applications