Skip to content

feat!: redesign of the AI testing framework#30

Merged
constantinius merged 43 commits into
mainfrom
constantinius/breaking/redesign
Feb 6, 2026
Merged

feat!: redesign of the AI testing framework#30
constantinius merged 43 commits into
mainfrom
constantinius/breaking/redesign

Conversation

@constantinius

Copy link
Copy Markdown
Collaborator

Key features

Splitting the test cases from their implementation for the various framework integrations to test.

Test cases are rendered with templates for a given framework, allowing to significantly improve the test coverage for all kinds of variations in interacting with the framework.

New layout of the testing framework to run everything in TypeScript/JavaScript, only Python test execution uses the Python interpreter. Spans are no longer intercepted in the transport, but a Span collector receives the spans.

We now have a test layout in the following manner: <type>/<platform>/<framework>/<test-case>/<check>, where:

  • type is the basic thing to test, currently LLMs (non-agentic) and agents. Later MCP and embeddings.
  • platform: either JS or Python, will also be expanded upon
  • framework: the framework integration to test, e.g: openai, anthropic or langgraph
  • test-case: the test-case to run, a complete scenario with a given purpose
  • check: a specific check to be run, with one or more assertions

- Add causeAPIError flag to TestDefinition interface
- Update base templates (Python/JS) with error handling wrapper
- Implement respx-based API mocking for OpenAI Python template
- Add respx dependency to OpenAI Python config
- Create Basic Error LLM Test case that validates error capture
- Simplify OpenAI Python template (remove verbose debug output)
…Python templates

- Add respx/httpx imports and inject_api_error block to all 3 templates
- Add respx dependency to config.json for each framework
- Simplify templates (remove verbose debug output, use kwargs pattern)

@obostjancic obostjancic left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

L F G 🚀

@constantinius constantinius merged commit b322b81 into main Feb 6, 2026
5 of 8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants