Agent Skills
› fastrepl/anarlog
› axum-test-transport
axum-test-transport
GitHub指导Axum服务测试策略,优先使用tower::oneshot进行无网络的状态码、路由及中间件验证,仅在WebSocket或端到端场景保留真实TcpListener服务器测试。
Trigger Scenarios
编写Axum服务单元测试
决定使用in-process还是real-server进行测试
优化现有测试启动方式
Install
npx skills add fastrepl/anarlog --skill axum-test-transport -g -y
SKILL.md
Frontmatter
{
"name": "axum-test-transport",
"metadata": {
"internal": true
},
"description": "Choose between in-process `tower::ServiceExt::oneshot` tests and real `tokio::net::TcpListener` server tests for Axum services in this repository."
}
Use this skill when working on Axum tests that currently start a server or could be simplified.
Prefer oneshot when the test only verifies:
- status codes
- headers
- JSON/body shape
- route or middleware behavior
- request handling without real network behavior
Use:
use tower::ServiceExt;
oneshot is available through tower::ServiceExt.
Keep a real TcpListener + axum::serve(...) when the test needs:
- WebSocket upgrade/handshake behavior
- real client behavior (
reqwest,tokio_tungstenite, etc.) as the thing under test - transport/lifecycle concerns like bind/listen/shutdown
- true end-to-end coverage over
http://orws://
Repository guidance:
crates/transcribe-cactus/tests/batch.rsstyle tests are goodoneshotcandidatescrates/transcribe-cactus/tests/live.rsWebSocket tests should stay real-server- if several tests share the same in-process request setup, add a tiny local helper (for example request builder or response JSON parser)
After changes:
- run
pnpm exec dprint fmt - run the relevant Rust test compile/check command
Version History
- 2d4c6b1 Current 2026-08-20 17:12


