resolvePackageTestPathFromDeclaration function

String? resolvePackageTestPathFromDeclaration({
  1. Uri? locationUri,
  2. StackTrace? stackTrace,
  3. List<String> ignoredLibrarySuffixes = const <String>[],
})

Implementation

String? resolvePackageTestPathFromDeclaration({
  Uri? locationUri,
  StackTrace? stackTrace,
  List<String> ignoredLibrarySuffixes = const <String>[],
}) {
  final direct = packageTestPathFromUri(locationUri);
  if (direct != null) {
    return direct;
  }

  final trace = stackTrace ?? StackTrace.current;
  for (final line in trace.toString().split('\n')) {
    final match = RegExp(r'(file:///[^\s)]+\.dart)').firstMatch(line);
    if (match == null) {
      continue;
    }
    final uri = Uri.tryParse(match.group(1)!);
    final candidate = packageTestPathFromUri(uri);
    if (candidate == null ||
        _isAdapterLibrary(
          candidate,
          ignoredLibrarySuffixes: ignoredLibrarySuffixes,
        )) {
      continue;
    }
    return candidate;
  }
  return null;
}