mod integrated_test { use std::path::PathBuf; use anyhow::Result; use assert_cmd::{assert::OutputAssertExt, Command}; use predicates::prelude::*; #[test] fn full_log() -> Result<()> { let test_out_dir = assert_fs::TempDir::new()?; let test_out = PathBuf::new().join(&test_out_dir).join("out.csv"); // 1st file let mut cmd = Command::cargo_bin("psb-qaqc-parse")?; cmd.current_dir("tests") .arg("./example_logs/valid/20240720_171418.log") .arg(test_out.as_path()) .assert() .success() .stdout(predicate::str::contains("Creating new file")); // 2nd file let mut cmd = Command::cargo_bin("psb-qaqc-parse")?; cmd.current_dir("tests") .arg("./example_logs/valid/20240720_171418.log") .arg(test_out.as_path()) .assert() .success(); Ok(()) } #[test] fn partial_log() -> Result<()> { let test_out_dir = assert_fs::TempDir::new()?; let test_out = PathBuf::new().join(&test_out_dir).join("out.csv"); let mut cmd = Command::cargo_bin("psb-qaqc-parse")?; cmd.current_dir("tests") .arg("./example_logs/valid/20240720_171419.log") .arg(test_out.as_path()) .assert() .success() .stdout(predicate::str::contains("Creating new file")); Ok(()) } }