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
-
- Object
- BaseAnalyzer
- AvoidTestTimeoutsAnalyzer
Constructors
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
CompilationUnitand return a list of LintIssues.override -
analyzeWithResolver(
CompilationUnit unit, dynamic resolver) → List< LintIssue> -
Analyze the given
CompilationUnitwith resolver context and return a list of LintIssues.inherited -
createIssue(
AstNode node, {String? customMessage}) → LintIssue -
Helper to create a LintIssue from an
AstNodewith 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