dokimos-dev/dokimos/create-tests
Claude Code and agent skill by dokimos-dev/dokimos
- community
Checking that the SKILL.md file is still in the repository.
Scaffolds eval-driven tests using dokimos-junit. Use this skill when the user wants to create evaluation tests, set up eval-driven development, write parameterized evaluation tests, use @DatasetSource, or test their LLM application with Dokimos in a JUnit test. Also use when the user mentions eval-driven testing, evaluation as unit tests, or continuous evaluation in CI.
Install
npx vskill@latest install dokimos-dev/dokimos/create-testsSKILL.md
Create Eval-Driven Tests
Scaffold evaluation tests using dokimos-junit that run Dokimos evaluations as JUnit parameterized tests. The user will describe what they want to test via $ARGUMENTS.
This approach — eval-driven development — lets users treat LLM evaluations like unit tests: each dataset example becomes a test case, evaluators act as assertions, and the whole thing runs in CI with mvn test.
Where things live
- Assertions:
dokimos-core/src/main/java/dev/dokimos/core/Assertions.java - DatasetSource annotation:
dokimos-junit/src/main/java/dev/dokimos/junit/DatasetSource.java - Example class:
dokimos-core/src/main/java/dev/dokimos/core/Example.java - Real-world example:
dokimos-examples/src/main/java/dev/dokimos/examples/junit/QuestionAnsweringTest.java
Before writing code, read QuestionAnsweringTest.java to see a complete working example.
How it works
dokimos-junit bridges Dokimos datasets and JUnit's @ParameterizedTest. Each Example in a dataset becomes a separate test invocation. Inside the test, you call your LLM, convert the example to an EvalTestCase with the actual output, and run evaluators via Assertions.assertEval().
The test fails (throws AssertionError) if any evaluator's score falls below its threshold — just like a regular assertion.
Core pattern
Dataset source options
@DatasetSource supports three modes:
Converting examples to test cases
Example provides two toTestCase methods:
The multi-output form is needed when evaluators require additional data beyond the main output (e.g., FaithfulnessEvaluator needs a context key, ContextualRelevanceEvaluator needs a retrieval context key).
Patterns by use case
Simple Q&A evaluation
LLM-judged evaluation
When exact matching is too rigid, use LLMJudgeEvaluator for semantic evaluation. It requires evaluationParams (which test case fields to include in the judge prompt) and a JudgeLM instance.
RAG evaluation with context
For RAG pipelines, pass retrieval context alongside the output. Use a consistent context key and set it explicitly on evaluators that need it.
Integration test with external API
Tests calling real LLM APIs should be tagged so they don't run in every mvn test invocation.
Run integration tests with: mvn verify -Dgroups=integration
Dependencies
dokimos-junit transitively includes dokimos-core, so you don't need both.
Steps
- Determine from
$ARGUMENTSwhat the user wants to evaluate (Q&A, RAG, chat, etc.) - Create or identify a dataset for the test (use the
create-datasetskill if needed) - Choose the right evaluators for the use case
- Place the dataset in
src/test/resources/datasets/ - Create the test class with
@ParameterizedTestand@DatasetSource - Wire
Example.toTestCase()with the appropriate output keys - Use
Assertions.assertEval()to run the evaluations - Tag as
@Tag("integration")if calling external APIs
Checklist
- [ ] Test uses
@ParameterizedTestwith@DatasetSource - [ ] Dataset is in
src/test/resources/datasets/(or inline for small tests) - [ ]
Example.toTestCase()is called with the right output structure - [ ]
Assertions.assertEval()is used (not manual assertion on scores) - [ ] Evaluators that need context have explicit key configuration
- [ ]
LLMJudgeEvaluatorhas.evaluationParams(...)and.judge(...)set - [ ] Tests calling external APIs are tagged with
@Tag("integration")
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingplugins/create-tests/skills/create-tests/SKILL.md
Popularity
- Repository stars
- 42
- Repository forks
- 4
- 7-day trend score
- 19
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/dokimos-dev/dokimos/create-tests)