编码智能体:测试智能体与 IDE 插件结合

示例

AutoDev

https://ide.unitmesh.cc/custom/extension-context-agent

{ "name": "@autodev.ext-context.test", "description": "AutoTest", "url": "http://127.0.0.1:8765/api/agent/auto-test", "responseAction": "Direct" }

对应的模板文件如下:

Write unit test for following ${context.lang} code. ${context.frameworkContext} #if( $context.relatedClasses.length() > 0 ) Here is the relate code maybe you can use ${context.relatedClasses} #end #if( $context.currentClass.length() > 0 ) This is the class where the source code resides: ${context.currentClass} #end ${context.extContext} Here is the source code to be tested: ${context.imports} ${context.sourceCode} #if($context.isNewFile) Should include package and imports. Start method test code with Markdown code block here: #else Should include package and imports. Start ${context.testClassName} test code with Markdown code block here: #end

对应的 Kotlin 代码:

private fun getCustomAgentTestContext(testPromptContext: TestCodeGenContext): String { if (!project.customAgentSetting.enableCustomRag) return "" val agent = loadTestRagConfig() ?: return "" val query = testPromptContext.sourceCode val stringFlow: Flow<String> = CustomAgentExecutor(project).execute(query, agent) ?: return "" val responseBuilder = StringBuilder() runBlocking { stringFlow.collect { string -> responseBuilder.append(string) } } return responseBuilder.toString() }