gpt4 book ai didi

rust - 如何从 Cargo 运行外部黑盒测试?

转载 作者:行者123 更新时间:2023-11-29 08:08:03 25 4
gpt4 key购买 nike

假设我有一个 Rust 程序,其中包含一些用 sh 或 Python 编写的黑盒测试(例如)。有什么简单的方法可以让 Cargo test 运行它们?

(我意识到这有点违背 Cargo 的本质,因为它可能会引入对 OS 工具的未跟踪依赖项。但它真的很有用,因为我有一些我想重用的现有测试。)

最佳答案

对于快速和肮脏的测试,您可以通过带有 std::process::Command 的 shell 命令运行外部可执行文件。 .只需将其粘贴到测试目录中,如下所示:

#[test]
fn it_works() {
use std::process::Command;

let output = Command::new("python.exe")
.arg("test.py")
.output()
.unwrap_or_else(|e| { panic!("failed to execute process: {}", e) });

let s = match String::from_utf8(output.stdout) {
Ok(v) => v,
Err(e) => panic!("Invalid UTF-8 sequence: {}", e),
};

println!("result: {}", s); //must run "cargo test -- --nocapture" to see output
}

对于任何比这更复杂的事情,您将不得不使用特定于外部语言的 FFI。

关于rust - 如何从 Cargo 运行外部黑盒测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31660386/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com