3个版本
0.1.3 | 2024年3月31日 |
---|---|
0.1.2 | 2022年12月26日 |
0.1.1 | 2022年12月26日 |
804 在 音频 中
每月下载 113 次
455KB
12K SLoC
rea-rs-test
简化REAPER扩展插件测试。
这个集成测试套件最初由Benjamin Klum为 reaper-rs
编写,但依赖于未发布且不会很快发布的 reaper-high
crate。此外,它还深度集成到库中。
此版本尽可能封装,留下简单的测试接口。
对于测试类型为 cdylib
的REAPER扩展,您需要将项目文件夹转换为工作空间。所以,基本上,项目树看起来像这样
workspace_directory
├── Cargo.toml
├── README.md
├—— my_lib
├ ├—— src
│ └── lib.rs
└── test
├── Cargo.toml
├── src
│ └── lib.rs
└── tests
└── integration_test.rs
test
crate不会提供给最终用户,但会用于测试您的库。由于需要修补reaper-low和reaper-medium,因此 test/Cargo.toml
的内容
[package]
edition = "2021"
name = "reaper-test-extension-plugin"
publish = false
version = "0.1.0"
[dependencies]
rea-rs = "0.1.1"
rea-rs-macros = "0.1.0"
rea-rs-test = "0.1.0"
my_lib = {path = "../my_lib"}
[lib]
crate-type = ["cdylib"]
name = "reaper_test_extension_plugin"
test/tests/integration_test.rs
的内容
use rea_rs_test::{run_integration_test, ReaperVersion};
#[test]
fn main() {
run_integration_test(ReaperVersion::latest());
}
test/src/lib.rs
是放置集成测试的文件。
use rea_rs_macros::reaper_extension_plugin;
use rea_rs_test::*;
use rea_rs::{Reaper; PluginContext};
use std::error::Error;
fn hello_world(reaper: &mut Reaper) -> TestStepResult {
reaper.show_console_msg("Hello world!");
Ok(())
}
#[reaper_extension_plugin]
fn test_extension(context: PluginContext) -> Result<(), Box<dyn Error>> {
// setup test global environment
let test = ReaperTest::setup(context, "test_action");
// Push single test step.
test.push_test_step(TestStep::new("Hello World!", hello_world));
Ok(())
}
要运行集成测试,请转到测试文件夹,然后输入: cargo build --workspace; cargo test
提示
使用crate log
和 env_logger
将打印到stdio。集成测试会自动开启env logger。
依赖关系
~22–37MB
~668K SLoC