junit-mcp-server
Version:
A Model Context Protocol (MCP) server for generating JUnit tests for Java classes.
54 lines (50 loc) • 2.21 kB
JavaScript
// JUnit Test Generator MCP Tool
// Exports a tool definition for MCP server to generate JUnit tests for Java classes
const testTemplateGenerator = require('./testTemplateGenerator');
const analyzers = {
classAnalyzer: require('../analyzers/classAnalyzer'),
dependencyAnalyzer: require('../analyzers/dependencyAnalyzer'),
packageAnalyzer: require('../analyzers/packageAnalyzer'),
projectStructureAnalyzer: require('../analyzers/projectStructureAnalyzer'),
specialFeatureAnalyzer: require('../analyzers/specialFeatureAnalyzer'),
testPatternAnalyzer: require('../analyzers/testPatternAnalyzer'),
};
module.exports = {
name: 'generate-junit-test',
description: 'Generate JUnit tests for a given Java class source',
inputSchema: {
type: 'object',
properties: {
javaSource: { type: 'string', description: 'Java class source code' },
className: { type: 'string', description: 'Name of the Java class' },
},
required: ['javaSource', 'className']
},
outputSchema: {
type: 'object',
properties: {
junitTest: { type: 'string', description: 'Generated JUnit test code' }
},
required: ['junitTest']
},
async run({ javaSource, className }) {
// Analyze the Java source using available analyzers
const classInfo = analyzers.classAnalyzer.analyze(javaSource);
const dependencies = analyzers.dependencyAnalyzer.analyze(javaSource);
const packageInfo = analyzers.packageAnalyzer.analyze(javaSource);
const structure = analyzers.projectStructureAnalyzer.analyze(javaSource);
const features = analyzers.specialFeatureAnalyzer.analyze(javaSource);
const testPatterns = analyzers.testPatternAnalyzer.analyze(javaSource);
// Generate the JUnit test using the template generator
const junitTest = testTemplateGenerator.generate({
className,
classInfo,
dependencies,
packageInfo,
structure,
features,
testPatterns
});
return { junitTest };
}
};