5个版本
| 0.1.4 | 2024年7月5日 |
|---|---|
| 0.1.3 | 2024年6月29日 |
| 0.1.2 | 2024年6月22日 |
| 0.1.1 | 2024年6月21日 |
| 0.1.0 | 2024年6月3日 |
#145 in 测试
298 每月下载量
13KB
185 行
Cucumber Trellis
为Cucumber创建测试“trellis”。
您可以为Cucumber创建一个测试套件,每个测试在一个文件中实现,并链接到一个Gherkin特性文件。
每个测试实现了一个CucumberTest特质,并将此测试注册在“trellis”中。
最后,所有测试并行执行,trellis等待所有测试完成。
安装
cargo add cucumber cucumber-trellis
使用方法
首先,通过在您的Cargo.toml中添加以下行允许Cucumber打印输出而不是libtest:
[[test]]
name = "cucumber"
harness = false
然后,将特性文件放在tests/features目录中,并将以下代码放在tests/cucumber.rs中:
mod tests;
fn main() {
let mut trellis = cucumber_trellis::CucumberTrellis::new(None);
trellis.add_test::<tests::example::SimpleTest>();
trellis.run_tests();
}
之后,在tests/tests/example.rs中,实现cucumber_trellis::CucumberTest特质,如下所示:
use cucumber_trellis::CucumberTest;
use cucumber::World;
#[derive(World, Debug)]
pub(in super::super) struct SimpleTest;
impl CucumberTest for SimpleTest {
const NAME: &'static str = "simple-test";
}
// Implement here, the steps according the file `tests/features/simple-test.feature`
// ...
别忘了文件tests/tests/mod.rs
pub(super) mod example;
最后,运行测试
cargo test --test cucumber
示例
您可以在tests目录中找到一个示例。
宏
您可以使用宏cucumber_trellis::cucumber_test来简化代码。
宏cucumber_test将为您的函数添加Cucumber测试。该函数将接收一个对CucumberTrellis对象的可变引用
use cucumber_trellis::{CucumberTrellis, cucumber_test};
#[cucumber_test(features="tests/features", executor="futures::executor::block_on", use_tokio)]
fn my_tests(trellis: &mut CucumberTrellis) {
trellis.add_test::<tests::example::SimpleTest>();
}
目前,宏cucumber_test可以接收以下参数:
features:特性文件的路径,例如tests/features。executor:执行异步的函数的路径。use_tokio:生成的main函数将使用tokio运行时;Tokio应该添加到dev-dependencies中。
这些参数是可选的,参数 use_tokio 和 executor 是互斥的,因为 use_tokio 强制使用 tokio 作为执行器。所以上面的例子无法编译,它只是用来展示用法。
默认执行器是 futures::executor::block_on,因此如果没有在参数中指定执行器,必须在 Cargo.toml 中添加依赖 futures。
依赖项
~10–20MB
~283K SLoC