cpp-testing
C++ テストの作成/更新/修正、GoogleTest/CTest の設定、失敗またはフレーキーなテストの診断、カバレッジ/サニタイザーの追加時にのみ使用します。
原文 · 译文未通过检查适用对象:软件开发与测试。自动收录 · 待核查。
原作者说明节选
从固定版本的 SKILL.md 提取,保留原文语言。以下内容属于作者说明,本站尚未验证安装、兼容或运行结果。
查看日文原文
原文涵盖的主题
- C++ Testing(エージェントスキル)
- 使用タイミング
- 使用すべきでない場合
- コア概念
- TDD ワークフロー
- コード例
- 基本的なユニットテスト(gtest)
- フィクスチャ(gtest)
CMake/CTest を使用した GoogleTest/GoogleMock による最新の C++(C++17/20)向けのエージェント重視のテストワークフローです。 新しい C++ テストの作成または既存のテストの修正 C++ コンポーネントのユニット/統合テストカバレッジの設計 テストカバレッジ、CI ゲーティング、リグレッション保護の追加 一貫した実行のための CMake/CTest ワークフローの設定 テスト失敗またはフレーキーな動作の調査 メモリ/レース診断のためのサニタイザーの有効化 テスト変更を伴わない新しい製品機能の実装 テストカバレッジや失敗に関連しない大規模なリファクタリング 検証するテストリグレッションのないパフォーマンスチューニング C++ 以外のプロジェクトまたはテスト以外のタスク TDD ループ: red → green → refactor(テスト優先、最小限の修正、その後クリーンアップ) 分離: グローバル状態よりも依存性注入とフェイクを優先 テストレイアウト: tests/unit、tests/integration、tests/testdata モック vs フェイク: 相互作用にはモック、ステートフルな動作にはフェイク CTest ディスカバリー: 安定したテストディスカバリーのために gtestdiscovertests() を使用 CI シグナル: 最初にサブセットを実行し、次に --output-on-failure でフルスイートを実行 RED → GREEN → REFACTOR ループに従います: 1. RED: 新しい動作をキャプチャする失敗するテストを書く 2. GREEN: 合格する最小限の変更を実装する 3. REFACTOR: テストがグリーンのままクリーンアップする 1. gtest フィルタで単一の失敗したテストを再実行します。 2. 失敗したアサーションの周りにスコープ付きログを追加します。 3. サニタイザーを有効にして再実行します。 4. 根本原因が修正されたら、フルスイートに拡張します。 グローバルフラグではなく、ターゲットレベルの設定を優先します。 GCC + gcov + lcov: Clang + llvm-cov: 同期に sleep を使用しないでください。条件変数またはラッチを使用してください。 一時ディレクトリをテストごとに一意にし、常にクリーンアップしてください。 ユニットテストで実際の時間、ネットワーク、ファイルシステムの依存関係を避けてください。 ランダム化された入力には決定論的シードを使用してください。 テストを決定論的かつ分離されたものに保つ グローバル変数よりも依存性注入を優先する 前提条件には ASSERT を使用し、複数のチェックには EXPECT を使用
这里只展示节选,请以完整原文和当前要求为准。
- 来源仓库
- affaan-m/ECC
- 源文件
- docs/ja-JP/skills/cpp-testing/SKILL.md
- 固定版本
- d2ef2680594f9a17526a6e1a2e18b3d242c5d17b
准备条件
- 本条仅收录原作者的技能元数据;请阅读完整说明,确认依赖、许可与使用条件。
第一件可以尝试的小事
先阅读原作者说明,再决定是否在自己的 AI 工具中使用。
对应 AI 工具说明
作者有说明不等于本站实机验证。没有证据时,不自动标为兼容、安全或免费。
来源与内容状态
本条为自动发现的元数据,尚未完成人工文档核查;适用性与运行结果待核查。
原作者:affaan-m/ECC · 原作者仓库元数据。文档核查:未核查。最近来源检查:2026-11-09T14:01:49.080Z。
分类由名称、说明与路径规则生成,分类不代表已核实适配。
许可与权利归属
MIT。第三方内容及版权归原作者,使用条件以原文为准。
许可原文 ↗本站没有因同步、复制或用户自报成功而将资源标为运行验证通过。
限制与注意事项
- 元数据收录不代表本站已经安装、适配、实测或进行安全审查。