Skip to content

ドキュメントとテストを対応関係にする #438

Open

Description

@FineArchs

ドキュメントファイル(.md)とテストコード(.ts)を、それぞれお互いに同名の対応するファイルがあるようにしたいと考えています。

// 例
doc/
  get-started.md, syntax.md, std.md, std-math.md, primitive-props.md
  parser/
    scanner.md

test/
  get-started.ts, syntax.ts, std.ts, std-math.ts, primitive-props.ts, parser.ts
  // パーサーのドキュメント・テストはひとまず現状維持とする

Pros

  • テストが探しやすくなる。
  • 足りていないテストを確認しやすくなる。

Cons

  • ややテスト時間が伸びる?
  • ややメンテナンスコストが上がる?

Activity

  1. marihachi commented on Nov 10, 2023

    @marihachi
    Contributor

    基本的には仕様に対してテストをするようにしたいですね。
    ただ、仕様と関係のない実装に対するテストがあるかも知れないので、そのテストはドキュメントと対応してこないかなと思います。

  2. marihachi commented on Nov 10, 2023

    @marihachi
    Contributor

    ドキュメントにもいろいろ種類があると思っています。
    テストと対応させるのは、言語仕様のドキュメントが良いかと思います。
    機能や構文を説明するドキュメントには、詳細な仕様は書けないと思うので。

  3. FineArchs commented on Nov 10, 2023

    @FineArchs
    MemberAuthor

    ドキュメントを説明用と仕様制定用に分ける感じですね。
    説明用の方にもテストを用意することにもメリットがあると考えていますが(仕様変更時にドキュメントの書き換えが必要な箇所をテストで検知出来る)、少なくとも後回しになりますね

  4. added
    documentationImprovements or additions to documentation
    and removed
    documentationImprovements or additions to documentation
    on Feb 17, 2024
  5. takejohn commented on Oct 27, 2024

    @takejohn
    Member

    これdoctestみたいにMarkdown内のコードブロックをAiScriptとして実行できたら便利そうですね
    Markdownのパーサを使用してコードブロックを抽出したり、AiScriptにassert関数を追加したりしたらいい感じにできそう

  6. FineArchs commented on Oct 27, 2024

    @FineArchs
    MemberAuthor

    求:いい感じのMarkdownパーサ

    related?: #804

  7. uzmoi commented on Oct 27, 2024

    @uzmoi
    Member

    vitepress なら markdown-it で starlight なら unified/remark 使ってるのでサイトジェネレータと同じものを使うとよいと思います。
    サイトの中だとそれを使うことになるので。

    あと、ユーザーが読むことを考慮するなら https://github.com/azu/power-doctest のように1 + 1 // => 2みたいな書き方ができると読みやすいかなと思いました。

  8. self-assigned this
    on Oct 28, 2024
  9. takejohn commented on Dec 6, 2024

    @takejohn
    Member

    あと、ユーザーが読むことを考慮するなら https://github.com/azu/power-doctest のように1 + 1 // => 2みたいな書き方ができると読みやすいかなと思いました。

    power-doctestは@babel/parserが生成するASTからtrailingCommentsを読み取ってるっぽい
    AiScriptのASTにコメントの情報は残らないのでパーサの変更が必要そう

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions