AvoidTestTimeoutsAnalyzer class

Analyzer that forbids using .timeout() and Future.delayed() in test files.

This rule flags timeout and delay patterns in test blocks to prevent flaky tests and encourage the use of proper async/await patterns and expectLater.

Example of code that triggers this rule:

test('example', () async {
  await userCompleter.future.timeout(Duration(seconds: 1));  // LINT
  await Future.delayed(Duration(milliseconds: 10));  // LINT
});

Example of code that doesn't trigger this rule:

test('example', () async {
  await expectLater(userStream, emits(expectedUser));
  await tester.pumpAndSettle();
});
Inheritance

Constructors

AvoidTestTimeoutsAnalyzer()

Properties

correctionMessage String
The suggested correction message for fixing a violation of this rule.
no setteroverride
hashCode int
The hash code for this object.
no setterinherited
problemMessage String
The main problem message shown when this rule is violated.
no setteroverride
ruleName String
The unique name of the lint rule implemented by this analyzer.
no setteroverride
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
severity String
The severity of the lint rule (e.g., 'ERROR', 'WARNING').
no setterinherited

Methods

analyze(CompilationUnit unit) List<LintIssue>
Analyze the given CompilationUnit and return a list of LintIssues.
override
analyzeWithResolver(CompilationUnit unit, dynamic resolver) List<LintIssue>
Analyze the given CompilationUnit with resolver context and return a list of LintIssues.
inherited
createIssue(AstNode node, {String? customMessage}) LintIssue
Helper to create a LintIssue from an AstNode with consistent formatting.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited