Packages
testcontainers
1.0.0-beta
2.3.1
2.3.0
2.2.0
2.1.0
2.1.0-rc1
2.0.0
2.0.0-rc3
2.0.0-rc2
2.0.0-rc
1.14.1
1.14.0
1.13.5
1.13.4
1.13.3
1.13.2
1.13.1
1.13.0
1.12.0
1.11.8
1.11.7
1.11.6
1.11.5
1.11.4
1.11.3
1.11.2
1.11.1
1.11.0
1.10.5
1.10.4
1.10.3
1.10.2
1.10.1
1.10.0
1.9.0
1.8.4
1.8.3
1.8.2
1.8.1
1.8.0
1.7.0
1.6.0
1.5.1
1.5.0
1.4.2
1.4.1
1.4.0
1.3.1
1.3.0
1.2.11
1.2.10
1.2.9
1.2.8
1.2.7
1.2.6
1.2.5
1.2.4
1.2.3
1.2.2
1.2.1
1.2.0
1.1.3
1.1.2
1.1.1
1.1.0
1.0.1
1.0.0
1.0.0-beta.1
1.0.0-beta
0.9.3
0.9.2
0.9.1
0.9.0
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.
Current section
Files
Jump to
Current section
Files
testcontainers
README.md
README.md
# 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.