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