원클릭으로
podman-testing
Podman Compose integration testing patterns for TimescaleDB and RabbitMQ container management
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Podman Compose integration testing patterns for TimescaleDB and RabbitMQ container management
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Java 25 code style conventions for crypto-scout-test including naming, imports, error handling, and testing patterns
Java 25 test library development patterns for crypto-scout-test including MockData, PodmanCompose, and RabbitMQ utilities
| 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: