Trait sqlx_core::testing::TestSupport
source · pub trait TestSupport: Database {
// Required methods
fn test_context(
args: &TestArgs
) -> BoxFuture<'_, Result<TestContext<Self>, Error>>;
fn cleanup_test(db_name: &str) -> BoxFuture<'_, Result<(), Error>>;
fn cleanup_test_dbs() -> BoxFuture<'static, Result<Option<usize>, Error>>;
fn snapshot(
conn: &mut Self::Connection
) -> BoxFuture<'_, Result<FixtureSnapshot<Self>, Error>>;
}
Required Methods§
sourcefn test_context(
args: &TestArgs
) -> BoxFuture<'_, Result<TestContext<Self>, Error>>
fn test_context( args: &TestArgs ) -> BoxFuture<'_, Result<TestContext<Self>, Error>>
Get parameters to construct a Pool
suitable for testing.
This Pool
instance will behave somewhat specially:
- all handles share a single global semaphore to avoid exceeding the connection limit on the database server.
- each invocation results in a different temporary database.
The implementation may require DATABASE_URL
to be set in order to manage databases.
The user credentials it contains must have the privilege to create and drop databases.
fn cleanup_test(db_name: &str) -> BoxFuture<'_, Result<(), Error>>
sourcefn cleanup_test_dbs() -> BoxFuture<'static, Result<Option<usize>, Error>>
fn cleanup_test_dbs() -> BoxFuture<'static, Result<Option<usize>, Error>>
Cleanup any test databases that are no longer in-use.
Returns a count of the databases deleted, if possible.
The implementation may require DATABASE_URL
to be set in order to manage databases.
The user credentials it contains must have the privilege to create and drop databases.
sourcefn snapshot(
conn: &mut Self::Connection
) -> BoxFuture<'_, Result<FixtureSnapshot<Self>, Error>>
fn snapshot( conn: &mut Self::Connection ) -> BoxFuture<'_, Result<FixtureSnapshot<Self>, Error>>
Take a snapshot of the current state of the database (data only).
This snapshot can then be used to generate test fixtures.