add-test-requirement について
`.plain` ファイルに適合性テストの要件を追加するスキルです。テスト実行要件を、ユニットテストの指針、シナリオ、動作や実装の要件と区別します。
主な機能
- 01対象仕様の構成確認
- 02適合性テストとユニットテスト指針の区別
- 03テスト要件セクションへの要件追加
- 04配置と参照概念の確認
活用シーン
- 01適合性テストのフレームワーク指定
- 02適合性テストの実行方法の記述
- 03適合性テストデータの制約追加
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ plainlang/ plain-forge --skill add-test-requirementインストール後、Claude Code で/add-test-requirementを入力して読み込まれたか確認します。
詳細
テスト要件の追加
まずルールを読み込みます。 .plain ファイルの読み取り、編集、書き込みを行う前に、load-plain-reference スキルを呼び出し、案内されたルールファイルを読みます。この会話ですでに load-plain-reference が実行されている場合に限り、これを省略できます。
ワークフロー
- 対象の
.plainファイルを特定します。 対象が曖昧な場合は、ユーザーに確認します。 - ファイルを読みます。 既存のテスト要件と仕様全体の構成を把握します。
- 適合性テストに関する要件であることを確認します。 ユニットテストのガイダンスはここではなく、
***implementation reqs***に記載します。 - 以下のルールに従って要件を作成します。
***test reqs***セクションに挿入します。- ファイルをもう一度読み、配置と構文が正しいことを確認します。
ここに記載する内容
テスト要件では、適合性テストの作成方法と実行方法を指定します。一般的な内容は次のとおりです。
- テストフレームワーク:使用するフレームワーク(例:pytest、Unittest、xUnit)
- 実行方法:テストを実行するコマンド
- テスト上の制約:テストで必ず行うこと、または行ってはならないこと(例:テストのスキップ禁止、モックの要件)
- テストデータ:テストフィクスチャやモックデータの構成方法
- 環境設定:適合性テストの実行に必要な前提条件
ここに記載しない内容
- ユニットテストのガイダンス —
***implementation reqs***に記載します - テストシナリオ — 適合性シナリオと受け入れシナリオは、
add-test-scenariosを使ってテスト用の plain ファイルに記述します(test-plain-files.mdを参照) - 振る舞いに関する要件 —
***functional specs***に記載します - 実装技術の選択 —
***implementation reqs***に記載します
適合性テストとその他のテスト
| テストの種類 | 指定する場所 | 目的 |
|---|---|---|
| ユニットテスト | ***implementation reqs*** | 個々の機能を切り分けてテストする |
| 適合性テスト | 方法:***test reqs***、対象:テスト用 plain ファイルの ***conformance tests*** | ある機能の想定される使用方法と主要経路を検証する |
| 受け入れテスト | 方法:***test reqs***、対象:テスト用 plain ファイルの ***acceptance tests*** | 無効なパラメーター、誤った認証や認証情報の欠落、データの欠落など、想定外の使用状況で機能を検証する |
形式
テスト要件は ***test reqs*** セクションに箇条書きで記載します。
***test reqs***
- :ConformanceTests: should be implemented using pytest framework.
- :ConformanceTests: will be run using "pytest" command.
- :ConformanceTests: must be implemented and executed - do not skip tests.
- :ConformanceTests: should mock all external HTTP calls.
明確さを高めるために、:ConformanceTests: などの事前定義された概念や、定義済みの :Concepts: を参照します。
検証チェックリスト
- ユニットテストや振る舞いではなく、適合性テストに関する内容を記述している
- 参照しているすべての
:Concepts:が定義されている(または:ConformanceTests:のように事前定義されている) - ファイルまたはそのインポート先にすでに記載されているガイダンスと重複していない
-
concise-specs.mdに従って簡潔にしている:平易な語句を使い、理由やデフォルトのフレームワーク動作を含めていない -
***test reqs***セクション内に配置している -
***functional specs***に記載すべき振る舞いに関する要件を含めていない
コメント
Markdown 対応