Skip to main content
Glama

Test Runner MCP

by privsim
rust.test.ts3.75 kB
import { RustParser } from '../rust.js'; describe('RustParser', () => { const parser = new RustParser(); it('should parse successful test output', () => { const stdout = ` Running tests/test_basic.rs running 3 tests test test_addition ... ok test test_subtraction ... ok test test_multiplication ... ok test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s `; const stderr = ''; const result = parser.parse(stdout, stderr); expect(result.framework).toBe('rust'); expect(result.summary.total).toBe(3); expect(result.summary.passed).toBe(3); expect(result.summary.failed).toBe(0); expect(result.tests.length).toBe(3); expect(result.tests[0].name).toBe('test_addition'); expect(result.tests[0].passed).toBeTruthy(); }); it('should parse failed test output', () => { const stdout = ` Running tests/test_basic.rs running 3 tests test test_addition ... ok test test_subtraction ... FAILED test test_multiplication ... ok failures: ---- test_subtraction ---- thread 'test_subtraction' panicked at 'assertion failed: \`(left == right)\` left: \`1\`, right: \`0\`', tests/test_basic.rs:14:5 note: run with \`RUST_BACKTRACE=1\` environment variable to display a backtrace failures: test_subtraction test result: FAILED. 2 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s `; const stderr = ''; const result = parser.parse(stdout, stderr); expect(result.framework).toBe('rust'); expect(result.summary.total).toBe(3); expect(result.summary.passed).toBe(2); expect(result.summary.failed).toBe(1); expect(result.tests.length).toBe(3); expect(result.tests[1].name).toBe('test_subtraction'); expect(result.tests[1].passed).toBeFalsy(); expect(result.tests[1].output.length).toBeGreaterThan(1); expect(result.tests[1].output.some(line => line.includes('assertion failed'))).toBeTruthy(); }); it('should parse compilation error output', () => { const stdout = ''; const stderr = ` error[E0425]: cannot find value \`undefinedVar\` in this scope --> src/lib.rs:5:13 | 5 | println!("{}", undefinedVar); | ^^^^^^^^^^^^ not found in this scope error: could not compile \`myproject\` due to previous error `; const result = parser.parse(stdout, stderr); expect(result.framework).toBe('rust'); expect(result.summary.total).toBe(1); expect(result.summary.passed).toBe(0); expect(result.summary.failed).toBe(1); expect(result.tests.length).toBe(1); expect(result.tests[0].name).toBe('Compilation Error'); expect(result.tests[0].passed).toBeFalsy(); expect(result.tests[0].output.some(line => line.includes('error[E0425]'))).toBeTruthy(); }); it('should parse ignored tests', () => { const stdout = ` Running tests/test_basic.rs running 4 tests test test_addition ... ok test test_ignored ... ignored test test_subtraction ... ok test test_multiplication ... ok test result: ok. 3 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.01s `; const stderr = ''; const result = parser.parse(stdout, stderr); expect(result.framework).toBe('rust'); expect(result.summary.total).toBe(3); // Ignored tests don't count in total expect(result.summary.passed).toBe(3); expect(result.summary.failed).toBe(0); expect(result.tests.length).toBe(3); // Should not include the ignored test expect(result.tests.some(t => t.name === 'test_ignored')).toBeFalsy(); }); });

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/privsim/mcp-test-runner'

If you have feedback or need assistance with the MCP directory API, please join our Discord server