# Testcontainers
[](https://hex.pm/packages/testcontainers)
> Testcontainers is an Elixir library that supports ExUnit tests, providing lightweight, throwaway instances of common databases, Selenium web browsers, or anything else that can run in a Docker container.
## Usage
test/a_simple_mysql_container_test.exs
```elixir
defmodule ASimpleMySqlContainerTest do
use ExUnit.Case, async: true
import Testcontainers.ExUnit
alias Testcontainers.Container.MySqlContainer
describe "with default configuration" do
container(:mysql, MySqlContainer.new())
test "provides a ready-to-use mysql container", %{mysql: mysql} do
assert mysql.environment[:MYSQL_MAJOR] == "8.0"
end
end
```
## Configure logging
For new mix projects with no log configuration Testcontainers will log everything at debug level.
You can suppress this debug logging globally for all tests in config/test.exs like this:
```elixir
import Config
config :logger, level: :warning
```
If you want to bring back the logs of Testcontainers later, you can change log level specifically like this in config/test.exs:
```elixir
config :testcontainers,
log_level: :warning
```
If you have a lot of libraries and code that have different log levels, your config/test.exs could look like this if you use Testcontainers:
```elixir
import Config
config :logger, level: :warning
config :testcontainers,
log_level: :warning
```
This will set everything to :warning, including Testcontainers default log level.
## Contribution
Do you want to contribute? Find spots to improve on, fire up an issue and get the discussion going.