# Add Test Spec

> Add Test Spec

- Skill: `tomevault-io/add-test-spec` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add tomevault-io/add-test-spec`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tomevault-io/add-test-spec/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: tomevault-io (https://skillmd.com/u/tomevault-io)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tomevault-io/add-test-spec

---


言語 `nospace` は、コード中の任意の箇所のスペース、改行、タブを許容する、遊びを目的としたプログラミング言語である。

- 言語 `nospace` の仕様は `docs/spec.md` に記載
- /docs/spec.md に基づき 、/resources/tests/ 以下にテストケースを追加
- 追加したテストケースは `/resources/tests/test-manifest.yaml` へ登録
- テストは `build.rs` により自動生成される

## テストケースの追加手順

1. テストファイルを作成
   - `resources/tests/passes/` (成功するテスト) または `resources/tests/fails/` (失敗するテスト) に配置
   - `.ns` ファイル: nospace ソースコード
   - `.check.json` ファイル: 期待する結果

2. `test-manifest.yaml` に登録
   - `name`: テスト関数名
   - `type`: `success`, `success_io`, `syntax_error`, `compile_error` など
   - `path`: テストファイルのパス（相対パス）
   - `comment`: (オプション) テストの説明
   - `exclude_targets`: (オプション) 除外するターゲット `[interpreter]` や `[whitespace]` など。デフォルトは全ターゲット

## success_io テストで複数ケースを使う

1つのテストに複数の入出力パターンを定義できます:

```json
{
  "type": "success_io",
  "cases": [
    {
      "name": "positive",
      "stdin": "42\n",
      "stdout": "42"
    },
    {
      "name": "zero",
      "stdin": "0\n",
      "stdout": "0"
    }
  ]
}
```

後方互換性のため、`cases` を使わない従来の形式も引き続き利用可能です。

詳細は `/resources/tests/README.md` を参照してください。

---
> Converted and distributed by [TomeVault](https://tomevault.io/claim/buyoh) — claim your Tome and manage your conversions.
<!-- tomevault:4.0:skill_md:2026-04-13 -->

