GraphAI のユニットテスト
はじめに
GraphAI で ユニットテストを行うには2つの方法があります。
1つは、リポジトリ全体のテストを行う方法で、もう1つは、単一のパッケージやプロジェクトのテストを行う方法です。
モノレポのテスト
GraphAIはモノレポを採用しています。
モノレポ(Monorepo)とは、複数のプロジェクトやパッケージを単一のリポジトリで管理する手法です。
複数のプロジェクトを一度にテストできるため、統合テストが容易になります。これにより、変更が他のプロジェクトに与える影響を迅速に検出できます。
モノレポを管理するためのツールとして、Yarn Workspaces を使用しています。
Yarn Workspacesは、Yarnパッケージマネージャーの機能で、モノレポをサポートします。
package.jsonファイルのスクリプトセクションには、yarn workspacesを使用してモノレポ内の各パッケージでコマンドを実行する設定が含まれています。
"scripts": {
"test": "yarn workspaces run test",
"build": "yarn workspaces run build",
"eslint": "yarn workspaces run eslint",
"format": "yarn workspaces run format",
"doc": "yarn workspaces run doc",
...
},
...
"workspaces": [
"packages/*",
"agents/*",
"llm_agents/*"
],
これにより、モノレポ内のすべてのパッケージで一貫したビルド、テスト、フォーマット、ドキュメント生成などが実行されます。
レポジトリ全体のテストを実行するには、以下のコマンドを実行します。
yarn test
これにより、モノレポ内のすべてのパッケージでテストが実行されます。
パッケージのテスト
パッケージ毎のテストを行うには、各パッケージのディレクトリ(package.jsonファイルがある場所)に移動して、テストコマンドを実行します。
cd packages/agent_filters
yarn test
これにより、指定されたパッケージのテストが実行されます。
現在のディレクトリ構成
まだ、構成が変わるかもしれませんが、現在のディレクトリ構成は以下のようになっています。
./graphai
./agents
./config
./docs
./llm_agents
./packages
./src
テストが実行されるパッケージ(package.json)は以下の通りです。テストをß実行すると、「>」の後ろに各パッケージのスコープと名前が表示されます。
./packages/agent_filters/package.json
> @graphai/agent_filters
./packages/agentdoc/package.json
> @receptron/agentdoc
./packages/agents/package.json
> @graphai/agents
./packages/cli/package.json
> @receptron/graphai_cli
./packages/graphai/package.json
> graphai
./packages/lite/package.json
> @receptron/graphai_lite
./packages/samples/package.json
> @graphai/samples
./packages/test_utils/package.json
> @receptron/test_utils
./agents/agent_utils/package.json
> @graphai/agent_utils
./agents/data_agents/package.json
> @graphai/data_agents
./agents/input_agents/package.json
> @graphai/input_agents
./agents/llm_agents/package.json
> @graphai/llm_agents
./agents/service_agents/package.json
> @graphai/service_agents
./agents/sleeper_agents/package.json
> @graphai/sleeper_agents
./agents/vanilla_agents/package.json
> @graphai/vanilla
./agents/vanilla_node_agents/package.json
> @graphai/vanilla_node_agents
./llm_agents/anthropic_agent/package.json
> @graphai/anthropic_agent
./llm_agents/gemini_agent/package.json
> @graphai/gemini_agent
./llm_agents/groq_agent/package.json
> @graphai/groq_agent
./llm_agents/llm_utils/package.json
> @graphai/llm_utils
./llm_agents/openai_agent/package.json
> @graphai/openai_agent
./llm_agents/openai_fetch_agent/package.json
> @graphai/replicate_agent
./llm_agents/replicate_agent/package.json
> @graphai/replicate_agent
./llm_agents/slashgpt_agent/package.json
> @graphai/slashgpt_agent
まとめ
GraphAI のテスト方法について説明しました。テストの実行だけではなく、テストの内容を確認することで、各パッケージの機能や仕様を把握することができ、参考になります。
また、テストを追加、変更するなどしてGraphAI自体の品質を上げるなどの貢献もできます。
是非、GraphAI の開発に参加してみてください。
人工知能を活用したアプリケーションやサービスを活用し、内発的動機付けで行動するエンジニア、起業家、社会起業家をサポートするコミュニティーです。 singularitysociety.org
Discussion