getStatusFromError function
Maps an error object to the closest Allure status.
Implementation
AllureStatus getStatusFromError(Object error, [StackTrace? stackTrace]) {
final typeName = error.runtimeType.toString().toLowerCase();
final message = error.toString().toLowerCase();
final trace = stackTrace?.toString().toLowerCase() ?? '';
bool containsAssertionSignal(String value) {
return value.contains('assert') ||
value.contains('expectation') ||
value.contains('matcher');
}
if (containsAssertionSignal(typeName) ||
containsAssertionSignal(message) ||
trace.contains('package:matcher') ||
trace.contains('package:test') ||
_hasDynamicField(error, 'matcherResult') ||
_hasDynamicField(error, 'actual') ||
_hasDynamicField(error, 'expected')) {
return AllureStatus.failed;
}
return AllureStatus.broken;
}