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