mcpField
O
ohos-test-graphics3d-static-api-unit-test

ohos-test-graphics3d-static-api-unit-test

github.com/openharmonyinsightテスト・品質3542 回インストール11 週間前に更新
リポジトリ

ohos-test-graphics3d-static-api-unit-test について

OpenHarmony GTest フレームワークで ETS/ArkTS の静的 API をユニットテストするためのガイドです。ラッパークラスのテスト向けに、命名規則、必須注釈、Arrange-Act-Assert パターンを示します。

主な機能

  1. 01テストクラス・ケース・ファイルの命名規則
  2. 02HWTEST_F マクロの使用指針
  3. 03必須のテスト注釈
  4. 04Arrange-Act-Assert テストパターン
  5. 05BUILD.gn へのソース登録手順

活用シーン

  1. 01新しい ETS ラッパークラスのテスト
  2. 02既存 API テストへのシナリオ追加
  3. 03テストモジュールや環境の作成

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/openharmonyinsight/openharmony-skills --skill ohos-test-graphics3d-static-api-unit-test

インストール後、Claude Code で/ohos-test-graphics3d-static-api-unit-testを入力して読み込まれたか確認します。

同梱ファイルREADME.mdreferences/UNITTEST_GUIDE.md

詳細

Graphics 3D API ユニットテストジェネレーター

概要

OpenHarmony GTest フレームワークに基づいて、ETS/ArkTS の静的 API ユニットテストを生成するためのガイドです。テスト生成ワークフロー、命名規則、基本的なパターンを説明します。

使用する場面

  • 新しい ETS ラッパークラス(例:CameraETS、MaterialETS)のユニットテストを追加する場合
  • 新しいテストシナリオを既存のテストケースに追加する場合
  • 新しいテストモジュールまたはテスト環境を設定する場合

使用しない場面:

  • Lume エンジンのコアレイヤーをテストする場合(他のテストフレームワークを使用してください)
  • 統合テストやパフォーマンステストを作成する場合(異なるフィクスチャが必要です)

クイックリファレンス

命名規則
要素規則例
テストクラス名<Module>ETSUnitTestMaterialETSUnitTest
テストケース名<Class>_<Method>_<Number>MaterialETS_Create_001
テストファイル名<module>_ets_unit_test.cppmaterial_ets_unit_test.cpp
テストマクロ
マクロ用途
HWTEST_F固定テストフィクスチャ(すべての ETS ユニットテストで必須)

テストレベル:テストの複雑さに応じて適切な TestSize.Level0-Level4 を使用してください。

選択ルール
  • デフォルト:ほとんどの API メソッドテストでは TestSize.Level1 を使用します
  • 調整:複雑なシナリオ(エラー処理、パフォーマンス)では、より高いレベルを使用してください

Level0-Level4 の定義については、UNITTEST_GUIDE.md の「Test Case Macros」セクションを参照してください。

必須コメントテンプレート
/**
 * @tc.name: <TestCaseName>
 * @tc.desc: <Description>
 * @tc.type: FUNC / PERF
 */

基本パターン:AAA テスト

Arrange-Act-Assert パターンを使用します。

/**
 * @tc.name: MaterialETS_Create_001
 * @tc.desc: Test MaterialETS creation and initialization
 * @tc.type: FUNC
 */
HWTEST_F(MaterialETSUnitTest, MaterialETS_Create_001, TestSize.Level1)
{
    auto material = std::make_shared<MaterialETS>();
    EXPECT_TRUE(material->IsValid());  // EtsTest provides engine context automatically
}

実装ワークフロー

  1. テストファイルを作成する:api_unit_test/<module>_ets_unit_test.cpp
  2. テストケースを記述する:必須のアノテーションとともに AAA パターンを使用します
  3. BUILD.gn を更新する:sources リストにファイルを追加します

実装の詳細:UNITTEST_GUIDE.md では、以下について説明しています。

  • EtsTest フィクスチャクラスの実装
  • BUILD.gn の完全なテンプレート
  • 環境設定とビルドコマンド
  • エラー処理の例

読み込みガイドについては、以下の「参照資料を読み込むタイミング」セクションを参照してください。

参照資料を読み込むタイミング

✅ 次の場合は UNITTEST_GUIDE.md を読み込みます:
  • 新しいテストモジュールを設定する場合(初回の設定)
  • クラスの最初のテストを記述する場合(ワークフロー全体が必要)
  • BUILD.gn の完全なテンプレートが必要な場合(コピーしてすぐに使えます)
  • ビルド/実行エラーのトラブルシューティングを行う場合(詳しい解決方法が必要)
  • EtsTest フィクスチャの詳細が必要な場合(エンジンのライフサイクルを理解するため)
❌ 次の場合は読み込まないでください:
  • テストをすぐに生成する場合(SKILL.md のクイックリファレンスで十分です)
  • 簡単な命名に関する質問(規則は SKILL.md に記載されています)
  • 慣れたシナリオの場合(標準的なパターンがわかっている場合)
  • クイックリファレンスの表だけが必要な場合(詳しい説明は不要です)

ルール:まず SKILL.md を確認してください。行き詰まった場合、または新しい環境を設定する場合にのみ UNITTEST_GUIDE.md を読み込みます。

リンク:UNITTEST_GUIDE.md(上記の条件に該当する場合にのみ読み込みます)

よくある間違い

問題解決方法
ヘッダーが見つからないBUILD.gn の include_dirs を確認します
ライブラリが見つからないlibAGPDLL.z.so が配置されていることを確認します
テストが干渉する分離のために SetUp/TearDown を使用します

絶対にしてはいけないこと

❌ 誤り✅ 正しい方法理由
MaterialETS_TestMaterialETSUnitTestOpenHarmony では UnitTest の接尾辞が必要です
MaterialETS_CreateMaterialETS_Create_001テスト名には _Number の接尾辞を含める必要があります
@tc.name を省略する常にアノテーションを追加するテストレポートの生成に必要です
GTest マクロを直接使用するHWTEST_F マクロを使用するOpenHarmony テストフレームワークで必要です
アノテーションなしでテストを記述する完全なアノテーションブロックを含めるアノテーションがないとテストの検出に失敗します

実際の効果

このスキルに従って生成されたテストは、以下の特長があります。

  • OpenHarmony のテスト標準に準拠します
  • エンジンのライフサイクル管理を自動化します
  • 完全なリソースクリーンアップ機構を備えています

参照資料

ドキュメント説明
UNITTEST_GUIDE.mdBUILD.gn の完全なテンプレート、EtsTest 基底クラス、環境設定

コメント