用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/akarazhev/crypto-scout-test --skill podman-testing命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
基于 SOC 职业分类
| name | podman-testing |
| description | Podman Compose integration testing patterns for TimescaleDB and RabbitMQ container management |
| license | MIT |
| compatibility | opencode |
| metadata | {"tools":"podman","services":"timescaledb,rabbitmq","domain":"integration-testing"} |
Guide integration testing with Podman-managed containers for TimescaleDB (PostgreSQL 17) and RabbitMQ 4.1.4.
timescale/timescaledb:latest-pg17127.0.0.1:5432:5432crypto_scoutcrypto_scout_db / crypto_scout_dbcrypto_scoutrabbitmq:4.1.4-management127.0.0.1:5672:5672127.0.0.1:5552:5552crypto_scout_mq / crypto_scout_mqbybit-streamimport com.github.akarazhev.cryptoscout.test.PodmanCompose;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
final class IntegrationTest {
@BeforeAll
static void setUp() {
PodmanCompose.up(); // Starts containers, waits for readiness
}
@AfterAll
static void tearDown() {
PodmanCompose.down(); // Stops containers, removes volumes
}
@Test
void shouldConnectToDatabase() throws Exception {
assertTrue(DBUtils.canConnect());
}
}
| Property | Default | Description |
|---|---|---|
podman.compose.cmd | podman-compose | Podman Compose binary |
podman.cmd | podman | Podman binary |
podman.compose.up.timeout.min | 3 | Startup timeout (minutes) |
podman.compose.down.timeout.min | 1 | Shutdown timeout (minutes) |
podman.compose.ready.interval.sec | 2 | Readiness check interval |
crypto_scout.bybit_spot_tickerscrypto_scout.bybit_spot_kline_1m, _5m, _15m, _60m, _240m, _1dcrypto_scout.bybit_spot_public_tradecrypto_scout.bybit_spot_order_book_1, _50, _200, _1000crypto_scout.bybit_linear_tickerscrypto_scout.bybit_linear_kline_1m, _5m, _15m, _60m, _240m, _1dcrypto_scout.bybit_linear_public_tradecrypto_scout.bybit_linear_order_book_1, _50, _200, _1000crypto_scout.bybit_linear_all_liquidationcrypto_scout.cmc_fgicrypto_scout.cmc_kline_1d, _1wcrypto_scout.bybit_lplcrypto_scout.btc_price_riskcrypto_scout.btc_risk_pricecrypto_scout.stream_offsets - Stream offset trackingTotal: 30 tables
Located in src/main/resources/podman/:
podman-compose.yml - Service definitions with resource limitsscript/init.sql - Database initialization and schema setupscript/bybit_spot_tables.sql - Spot table schemasscript/bybit_linear_tables.sql - Linear table schemasscript/crypto_scout_tables.sql - Crypto scout table schemasrabbitmq/enabled_plugins - RabbitMQ plugins (streams enabled)rabbitmq/rabbitmq.conf - RabbitMQ configurationrabbitmq/definitions.json - RabbitMQ definitions (users, exchanges, queues)# Standard test run
mvn test
# With extended timeout for slow environments
mvn -q -Dpodman.compose.up.timeout.min=5 test
# Custom database URL
mvn -q -Dtest.db.jdbc.url=jdbc:postgresql://localhost:5432/crypto_scout test
# Run specific test
mvn test -Dtest=StreamConsumerPublisherTest
# Run specific test method
mvn test -Dtest=MockBybitSpotDataTest#shouldSpotKline1DataReturnMap
podman --versionpodman-compose --version-Dpodman.compose.up.timeout.min=10lsof -i :5432 or lsof -i :5552podman pspodman logs crypto-scout-collector-dbrabbitmq.conf advertises localhostpodman exec crypto-scout-mq rabbitmq-plugins listpodman logs crypto-scout-mqContainer Readiness Checks:
waitForDatabaseReady() - Attempts JDBC connection with retrywaitForMqReady() - Creates temporary RabbitMQ Streams producerwaitForContainerRemoval() - Polls podman ps until containers goneResource Extraction: When running from JAR, extracts podman resources to temp directory:
crypto-scout-podman-Process Management:
ProcessBuilder for podman-compose commandsUse this skill when: