testcontainers / testcontainers-dotnet

A library to support tests with throwaway instances of Docker containers for all compatible .NET Standard versions.
https://dotnet.testcontainers.org
MIT License
3.65k stars 250 forks source link

fix: Consider the timestamp in the log message wait strategy (read the correct log message chunk) #1110

Closed HofmeisterAn closed 4 months ago

HofmeisterAn commented 4 months ago

What does this PR do?

The PR adds three new properties, CreatedTime, StartedTime, and StoppedTime, to the IContainer interface. The timestamp is assigned to the properties according to the state of the container.

Why is it important?

The log message wait strategy, until now, did not consider the timestamp from when it should read the container logs. Starting an already existing container (StopAsync(), StartAsync()) indicated the readiness of the container too early because the log messages were already present from the previous start. With the introduced changes, the log messages wait strategy will only include container log messages after the stopped timeout. This ensures that the wait strategy does not test against log messages generated from previous runs.

Starting an existing container may still run into issues if the log message wait strategy is not compatible with the different behaviors or outputs of the container. In some cases, the wait strategies need to be adjusted. We have noticed cases where container logs differ on the first attempt.

Related issues

netlify[bot] commented 4 months ago

Deploy Preview for testcontainers-dotnet ready!

Name Link
Latest commit b4da0f33e512c0c4cad25d532ff5afe905cdf415
Latest deploy log https://app.netlify.com/sites/testcontainers-dotnet/deploys/65c7e809f9bc860008f95571
Deploy Preview https://deploy-preview-1110--testcontainers-dotnet.netlify.app
Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site configuration.