postgresql_embedded 0.20.2

Install and run a PostgreSQL database locally on Linux, MacOS or Windows. PostgreSQL can be bundled with your application, or downloaded on demand.
Documentation
use postgresql_embedded::{BOOTSTRAP_DATABASE, PostgreSQL, Settings};
use sqlx::{PgPool, Row};
use std::collections::HashMap;
use test_log::test;

#[test(tokio::test)]
async fn start_config() -> anyhow::Result<()> {
    let configuration = HashMap::from([("max_connections".to_string(), "42".to_string())]);
    let settings = Settings {
        configuration,
        ..Default::default()
    };
    let mut postgresql = PostgreSQL::new(settings);

    postgresql.setup().await?;
    postgresql.start().await?;
    let settings = postgresql.settings();
    let database_url = settings.url(BOOTSTRAP_DATABASE);
    let pool = PgPool::connect(database_url.as_str()).await?;
    let row = sqlx::query("SELECT setting FROM pg_settings WHERE name = $1")
        .bind("max_connections".to_string())
        .fetch_one(&pool)
        .await?;
    let max_connections: String = row.get(0);
    pool.close().await;

    assert_eq!("42".to_string(), max_connections);

    Ok(())
}