Skip to main content

TestAdapter

Trait TestAdapter 

Source
pub trait TestAdapter {
    // Required methods
    fn detect(&self, project_dir: &Path) -> Option<DetectionResult>;
    fn build_command(
        &self,
        project_dir: &Path,
        extra_args: &[String],
    ) -> Result<Command>;
    fn parse_output(
        &self,
        stdout: &str,
        stderr: &str,
        exit_code: i32,
    ) -> TestRunResult;
    fn name(&self) -> &str;

    // Provided methods
    fn check_runner(&self) -> Option<String> { ... }
    fn filter_args(&self, pattern: &str) -> Vec<String> { ... }
}
Expand description

Trait that each language adapter must implement

Required Methods§

Source

fn detect(&self, project_dir: &Path) -> Option<DetectionResult>

Check if this adapter can handle the project at the given path

Source

fn build_command( &self, project_dir: &Path, extra_args: &[String], ) -> Result<Command>

Build the command to run tests

Source

fn parse_output( &self, stdout: &str, stderr: &str, exit_code: i32, ) -> TestRunResult

Parse stdout/stderr from the test runner into structured results

Source

fn name(&self) -> &str

Name of this adapter for display

Provided Methods§

Source

fn check_runner(&self) -> Option<String>

Check if the required test runner binary is available on PATH

Source

fn filter_args(&self, pattern: &str) -> Vec<String>

Return framework-specific CLI arguments to filter tests by pattern.

Different test frameworks accept filters in different ways:

  • Rust: positional arg (regex)
  • Go: -run <pattern>
  • Python: -k <pattern>
  • JS: -t <pattern>

Returns arguments to append to extra_args.

Implementors§