1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
mod cratesio;
mod git;
mod local;
mod traits;

pub use crate::runners::cratesio::CratesIoDependencyTestRunner;
pub use crate::runners::git::GitDependencyTestRunner;
pub use crate::runners::local::LocalDependencyTestRunner;
pub use crate::runners::traits::TestRunner;

use crate::command::{Crate, DependencyTypeEnum};

pub fn get_test_runner(dependency: &Crate) -> Box<dyn TestRunner> {
    match dependency.get_dependency_type() {
        DependencyTypeEnum::CratesIo(_) => Box::new(CratesIoDependencyTestRunner::new(dependency)),
        DependencyTypeEnum::Git(_) => Box::new(GitDependencyTestRunner::new(dependency)),
        DependencyTypeEnum::Local => Box::new(LocalDependencyTestRunner::new(dependency)),
    }
}