如何查看运行基于Substrate Cumulus运行时的测试产生的日志?
解决方案
- 在测试函数的业务逻辑执行前,添加Substrate日志初始化代码:
示例测试结构参考:sp_tracing::try_init_simple();
如果用原生#[test] fn xcm_test() { // 必须放在第一行执行 sp_tracing::try_init_simple(); // 后续测试逻辑 }env_logger,替换为let _ = env_logger::try_init();即可,多次初始化返回的错误可以直接忽略。 - 确认你配置的
cargo ltest别名没有覆盖--nocapture参数,可直接用原生cargo test命令验证效果:RUST_LOG=trace,parity-db=error,trie=error,runtime=trace,substrate-relay=trace,bridge=trace cargo test my_runtime::xcm_test -- --nocapture - 如果是nightly Rust版本,部分版本的测试输出捕获逻辑存在兼容问题,可替换为
--show-output参数验证:RUST_LOG=trace,parity-db=error,trie=error,runtime=trace,substrate-relay=trace,bridge=trace cargo test my_runtime::xcm_test -- --show-output - 若测试运行的是Wasm编译的runtime,需要确认runtime的Cargo.toml中,
stdfeature已开启日志相关依赖的std特性,默认测试配置会自动开启,如有自定义feature配置需手动核对。
内容的提问来源于stack exchange,提问作者Dzmitry Lahoda
相关产品推荐
相关产品推荐

