Skip to content

1.16.1

Compare
Choose a tag to compare
@github-actions github-actions released this 18 Oct 11:16
81317a6

What's Changed

1.16.1 inadvertently introduced a race condition. This bug can potentially cause unstable builds in some environments, manifesting as port wait timeouts at container startup. We recommend upgrading to 1.16.2 or higher.

Testcontainers 1.16.1 has been released! 🎉

This release brings a lot of eagerly awaited new features and fixes, such as:

🔮 Better Oracle Database support

Thanks to the engagement of the community and @gvenzl's new Docker images for Oracle Database Express Edition we were able to update our OracleContainer module to ensure its compatibility with a wide range of Oracle XE versions.

And at the same time, thanks to the new images, we were able to re-integrate the Oracle module into our CI. This means we can verify compatibility for using Testcontainers with Oracle Database going forward.

☁️ New Azure Cosmos DB module

With the new Azure Comos DB module we finally added Azure to our list of cloud service testing facilities.
It is based on Microsoft's Azure Cosmos DB-Emulator and provides you with a way to do your integration testing without the need for an actual Azure service.

public CosmosDBEmulatorContainer emulator = new CosmosDBEmulatorContainer(
        DockerImageName.parse("mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:latest")
);

Please check out the module docs to learn how to use it for your integration testing needs.

⛴ Host port access for containers

For further improving the developer experience of our users, we added a new API to make hosts ports accessible to containers:

container.withAccessToHost(true)

You still need to use exposeHostPorts, as per the docs, but this can now be done after the container has started, thereby allowing new usage patterns in your tests.

🌪 Faster Cassandra startup

By making clever use of the configuration settings available in Cassandra, CassandraContainer will now start up to 3 times faster.
It is now also configured to be less resource hungry out of the box.

✨ Better startup performance for all containers

We found a couple of ways to improve the container startup performance for our users, no matter the Testcontainers module you use.
This comes through some internal changes with regards to how Testcontainers checks for open ports during container startup and will shave up to a couple of seconds from your test suite.


We are grateful for the ongoing support of our community and users and thank each of our awesome contributors!

🚀 Features & Enhancements

  • Oracle Database: Update OracleContainer and re-activate on CI (#4298) @kiview & (#4402) @KyleAure
  • Azure Cosmos DB: Introduce CosmosDBEmulatorContainer (#4303) @okohub
  • Host Port Access: Provide an API to force access to the host (#4584) @bsideup
  • Cassandra: Tune Cassandra options for faster startup (#4309) @bsideup
  • Performance: Perform container startup port checks in parallel (#4463) @bsideup
  • Performance: Retry internal port checking in the same exec (#4460) @bsideup
  • OrientDB: Use log wait strategy for more reliable readiness detection (#4471) @rnorth
  • Fix flaky kafka cluster example (#4549) @rnorth
  • Give EnvironmentAndSystemPropertyClientProviderStrategy the highest priority (#4472) @kiview
  • Avoid overriding of files copied to container using subsequent withCopyFileToContainer (#2957) @findepi
  • Make TimescaleDB available with JDBC syntax (#3891) @raynigon
  • Refactor JDBC URL parsing to support different Oracle URLs (#4476) @rnorth
  • Allow to disable configuration of EnvironmentAndSystemPropertyClientProviderStrategy through Testcontainers (#4387) @kiview
  • Shorten fallback to another strategy (#4386) @pioorg
  • Update Kafka config dynamically (#4316) @bsideup
  • Disable Chrome's GPU support in BrowserWebDriverContainer (#4315) @kiview

🐛 Bug Fixes

  • Prevent Compose image pre-fetching from pulling all tags when tag is absent (#4538) @rnorth
  • Randomize naming for createVolumeDirectory method (#4195) @johnathana
  • Perform distinct/applicable filtering after identifying configured and available Docker client strategies (#4467) @bsideup
  • Use POSIX mode for large numbers in tar archives (#4384) (#4388) @schmidt-galen-heb

📖 Documentation

🧹 Housekeeping

📦 Dependency updates

Click to expand...