preparePackageTestDeclaration function
PreparedPackageTestDeclaration
preparePackageTestDeclaration({
- required Object? description,
- required Object? skip,
- Object? tags,
- Uri? locationUri,
- StackTrace? stackTrace,
- List<
String> ignoredLibrarySuffixes = const <String>[], - String? packagePath,
- String? rawName,
- String? testCaseName,
- Iterable<
AllureParameter> additionalParameters = const <AllureParameter>[],
Registers metadata and resolves skip / test-plan handling for one test.
Callers must ensure the Allure runtime plugin is installed first.
When packagePath is already known (e.g. shared across test variants),
pass it to skip another stack-based path resolution.
Implementation
PreparedPackageTestDeclaration preparePackageTestDeclaration({
required Object? description,
required Object? skip,
Object? tags,
Uri? locationUri,
StackTrace? stackTrace,
List<String> ignoredLibrarySuffixes = const <String>[],
String? packagePath,
String? rawName,
String? testCaseName,
Iterable<AllureParameter> additionalParameters = const <AllureParameter>[],
}) {
final registry = PackageTestScopeRegistry.instance;
final resolvedPackagePath =
packagePath ??
resolvePackageTestPathFromDeclaration(
locationUri: locationUri,
stackTrace: stackTrace,
ignoredLibrarySuffixes: ignoredLibrarySuffixes,
);
final groupPath = registry.currentPath;
final userSkipped = skip != null && skip != false;
final isSkipped = userSkipped || registry.isCurrentPathSkipped;
final declaredMetadata = buildPackageTestMetadata(
rawName: rawName ?? description?.toString() ?? '',
rawTags: normalizePackageTestTags(tags),
groupPath: groupPath,
packagePath: resolvedPackagePath,
skipped: isSkipped,
testCaseName: testCaseName,
additionalParameters: additionalParameters,
);
registry.registerMetadata(declaredMetadata);
final testPlan = parseTestPlan();
final excludedByTestPlan =
testPlan != null &&
!includedInTestPlan(
testPlan,
id: declaredMetadata.externalId,
fullName: declaredMetadata.fullName,
nativeSelector: declaredMetadata.nativeSelector,
tags: declaredMetadata.rawTags,
);
// Plan-excluded declarations never become lifecycle children, so omit them
// from expected child counts used to flush group fixtures.
if (!excludedByTestPlan) {
registry.registerTest(packagePath: resolvedPackagePath);
}
return PreparedPackageTestDeclaration(
metadata: declaredMetadata,
excludedByTestPlan: excludedByTestPlan,
shouldRuntimeSkip: isSkipped && !excludedByTestPlan,
runtimeSkipReason: skip is String ? skip : 'Skipped',
);
}