Parsed documentation:
View on GitHub
Starts a transaction for test.

This function work by starting a transaction and storing the connection
back in the pool with an open transaction. At the end of the test, the
transaction must be rolled back with `rollback_test_transaction`,
reverting all data added during tests.

**IMPORTANT:** Test transactions only work if the connection pool has
size of 1 and does not support any overflow.

## Example

The first step is to configure your database pool to have size of
1 and no max overflow. You set those options in your `config/config.exs`:

    config :my_app, Repo,
      size: 1,
      max_overflow: 0

Since you don't want those options in your production database, we
typically recommend to create a `config/test.exs` and add the
following to the bottom of your `config/config.exs` file:

    import_config "config/#{Mix.env}.exs"

Now with the test database properly configured, you can write
transactional tests:

    # All tests in this module will be wrapped in transactions
    defmodule PostTest do
      # Tests that use the shared repository cannot be async
      use ExUnit.Case

      setup do

        on_exit fn ->

      test "create comment" do
        assert %Post{} = TestRepo.insert(%Post{})
Please help! Open an issue on GitHub if this assessment is incorrect.