Control runaway async code by ensuring that tests complete within a giving time period using the #[Timeout] Attribute!
When writing asynchronous unit and integration tests there could be a possibility that your code executes for longer than expected or hangs on an async operation not properly handled. In these situations it can be helpful to fail the test after a defined period of time to ensure other tests can operate and test processing can finish without having to manually kill the process. You can easily add a timeout to a test by adding the #[Timeout] Attribute to the test, TestCase, or TestSuite6. The value provided should be the amount of milliseconds the test is expected to complete in.