- CI などで自動でテストできるようにした pytest.
- C2A は現状関数レベルのテストはなく,コマンド送信とテレメ結果で判断する,結合テストのみしかない.
- なお, C2A 間通信のテストについては, examples/subobc/src/src_user/test を参照すること.
- python3 系列と以下のライブラリ
- 上記の Python 環境は rye を用いてセットアップすること
- C2A実行環境(特定のボードでもSILSでも可)
- Gaia or WINGS(
utils/wings_utils.py
を以前のものに戻せばまだ使える)
- C2A と揃える.
- ファイル名は,
test_${c2a_src_filename}.py
.例えば次のようなもの.- './src_core/applications/test_nop.py'
- './src_user/applications/user_defined/test_tlm_mem_dump.py'
test_hoge
という関数を定義すれば,それが実行される.
- 実機実行のものは
@pytest.mark.real
- SILS 実行のものは
@pytest.mark.sils
- 両方のものは両方のデコレータをつける.
- テストと仕様が対応するように書くこと.
- 失敗ケースも正しく失敗されるようにアサーションを書くこと.
- HKが0.5Hzで降りてくるのは前提として良い.
C2A は c2a-dev-runtime
に載せたものを使う.
cd examples/mobc
pnpm run devtools:sils # C2A 本体と必要なもの(tmtc-c2a など)がすべて走る
rye sync
rye run pytest -m real -v # 実機の場合
rye run pytest -m sils -v # SILSの場合
# --capture=no オプションをつけると,print なども表示される
# 簡易表示にするには -v を取り除く
これにて,すべてのファイルに対してテストが走る.
個別ファイルをテストしたい場合は,以下などでOK.
rye run pytest -m real -v ./src_user/applications/user_defined/test_tlm_mem_dump.py
- デフォルトで,WINGS へのデータ送信が無効となっているため,以下を ON にする必要がある.
c2a-core/examples/mobc/CMakeLists.txt
Line 11 in eba2527