4 个版本
0.2.2 | 2024年4月16日 |
---|---|
0.1.2 | 2023年12月8日 |
0.1.1 | 2023年12月8日 |
0.1.0 | 2023年12月8日 |
#215 in 测试
67KB
1.5K SLoC
Rust Slim - Rust 的 Slim 服务器
为 rust 应用程序开发 Slim 适配器。基于 fitnesse 的 Slim 协议 fitnesse .
目前与 slim 协议不完全兼容。以下是一些已知未实现的功能
它只能处理字符串符号,不支持 SUT 特性。不支持 Actor。不支持使用 STOUD 和 STDIN 进行通信。
目前处于不稳定版本。通用 API 可能会在下一个版本中更改。
更多详情请参阅 文档
lib.rs
:
(尚未完成) 的 SlimServer 实现,用于接受测试。
这是通过在此处找到的文档实现的 这里
要将它添加到您的项目中,只需运行
cargo add rust_slim -F macros --dev
然后您需要创建您的适配器。推荐的操作方法是使用 #[fixture]
宏。以下是一个示例
use rust_slim::fixture;
#[derive(Default)]
pub struct Calculator {
a: i64,
b: i64,
}
#[fixture]
impl Calculator {
pub fn set_a(&mut self, a: i64) {
self.a = a
}
pub fn set_b(&mut self, b: i64) {
self.b = b
}
pub fn sum(&self) -> i64 {
self.a + self.b
}
pub fn mul(&self) -> i64 {
self.a * self.b
}
pub fn sub(&self) -> i64 {
self.a - self.b
}
pub fn div(&self) -> i64 {
self.a / self.b
}
}
所有公开方法都将能够被 slim 服务器调用。
然后,我们需要添加一个 slim 服务器的入口点,以便我们可以运行它。有很多种方法可以做到这一点。一种是在项目中创建一个示例。
因此创建一个名为 calculator.rs
的示例文件,并添加以下内容
use rust_slim::SlimServer;
use std::net::TcpListener;
use anyhow::Result;
use std::env::args;
#
#
#
#
#
#
#
fn main() -> Result<()> {
let port = args().skip(1).next().unwrap_or("8085".to_string());
let listener = TcpListener::bind(format!("0.0.0.0:{port}").to_string()).expect("Error");
let (stream, _) = listener.accept()?;
let mut server = SlimServer::new(stream.try_clone()?, stream);
server.add_fixture::<Calculator>();
server.run()?;
Ok(())
}
然后,要运行它,您只需调用 cargo run --example calculator
。现在您需要配置您的测试运行器 (fitnesse, temoc) 以调用您的服务器
依赖项
~0.9–1.7MB
~30K SLoC