testcontainers-dotnet icon indicating copy to clipboard operation
testcontainers-dotnet copied to clipboard

chore: Ensure that ConfigureAwait is always called on awaited tasks

Open 0xced opened this issue 1 year ago • 1 comments

What does this PR do?

This pull requests enables code quality analysis and turns CA2007: Do not directly await a Task into an error.

Why is it important?

Testcontainers for .NET calls ConfigureAwait(false) everywhere so this pull request enforces this rule so that authors contributors can't forget about it.

Follow-ups

Note that this was only enabled in the src directory and not at the root of the project to avoid enabling it for the test projects. It becomes problematic in TestcontainersContainerTest because of await using of IAsyncDisposable where it would generate an error.

And now the big question: is it really necessary to always call .ConfigureAwait(true) everywhere in the tests? I understand why calling .ConfigureAwait(false) is important in library code but I don't think it matters at all for the test project. Does it? I think we could suppress all .ConfigureAwait(true) in the tests and increase the readability of the tests.

0xced avatar Feb 14 '24 08:02 0xced

Deploy Preview for testcontainers-dotnet ready!

Name Link
Latest commit f20d2873f00eec6d22bdd3b4cf112efb9880f25d
Latest deploy log https://app.netlify.com/sites/testcontainers-dotnet/deploys/65d795e4e20ade000865e6f6
Deploy Preview https://deploy-preview-1117--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.

netlify[bot] avatar Feb 14 '24 08:02 netlify[bot]

I will just do the cleanup afterwards, and that is fine.

👍

It depends on the test framework, see: xUnit1030.

Thanks for that interesting piece of information!

0xced avatar Feb 22 '24 22:02 0xced