heartbeat method
void
heartbeat()
Notifies the invoker that progress is being made.
Each heartbeat resets the timeout timer. This helps ensure that long-running tests that still make progress don't time out.
Implementation
void heartbeat() {
if (liveTest.isComplete) return;
if (_timeoutTimer != null) _timeoutTimer!.cancel();
if (liveTest.suite.ignoreTimeouts == true) return;
const defaultTimeout = Duration(seconds: 30);
var timeout = liveTest.test.metadata.timeout.apply(defaultTimeout);
if (timeout == null) return;
String message() {
var message = 'Test timed out after ${niceDuration(timeout)}.';
if (timeout == defaultTimeout) {
message += ' See https://pub.dev/packages/test#timeouts';
}
return message;
}
_timeoutTimer = Zone.root.createTimer(timeout, () {
_outstandingCallbackZones.last.run(() {
_handleError(Zone.current, TimeoutException(message(), timeout));
_outstandingCallbacks.complete();
});
});
}