instrumentedTest
Execute instrumented tests for Android projects directly within Visual Studio Code by specifying the project folder path, enabling streamlined testing workflows.
Instructions
Run instrumented test for the Android project in the folder
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| folder | Yes | The full path of the current folder that the Android project sits |
Implementation Reference
- src/mcpandroidbuild/server.py:44-73 (handler)The call_tool handler function parses arguments using Folder schema, dispatches based on tool name, and for 'instrumentedTest' runs the instrumentedTest.sh script via subprocess, processes output to extract errors or success.@server.call_tool() async def call_tool(name, arguments: dict) -> list[TextContent]: try: args = Folder(**arguments) except ValueError as e: raise McpError(ErrorData(code=INVALID_PARAMS, message=str(e))) # os.chdir(args.folder) script_dir = os.path.dirname(os.path.abspath(__file__)) command = [""] if name == "build": command = [os.path.join(script_dir, "build.sh"), args.folder] elif name == "test": command = [os.path.join(script_dir, "test.sh"), args.folder] else: command = [os.path.join(script_dir, "instrumentedTest.sh"), args.folder] result = subprocess.run(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, check=False) stdout_lines = result.stdout.decode("utf-8").splitlines() stderr_lines = result.stderr.decode("utf-8").splitlines() all_lines = stdout_lines + stderr_lines error_lines = [line for line in all_lines if "failure: " in line.lower() or "e: " in line.lower() or " failed" in line.lower()] error_message = "\n".join(error_lines) if not error_message: error_message = "Successful" return [ TextContent(type="text", text=f"{error_message}") ]
- src/mcpandroidbuild/server.py:19-21 (schema)Pydantic BaseModel defining the input parameters for the tools, used as inputSchema. Requires a 'folder' path.class Folder(BaseModel): """Parameters""" folder: Annotated[str, Field(description="The full path of the current folder that the Android project sits")]
- src/mcpandroidbuild/server.py:38-42 (registration)Registration of the 'instrumentedTest' tool in the list_tools() function, providing name, description, and referencing Folder schema.Tool( name="instrumentedTest", description="Run instrumented test for the Android project in the folder", inputSchema=Folder.model_json_schema(), )