testWidgets function
void
testWidgets(
- String description,
- WidgetTesterCallback callback, {
- bool? skip,
- Timeout? timeout,
- bool semanticsEnabled = true,
- TestVariant<
Object?> variant = const ft.DefaultTestVariant(), - Object? tags,
- int? retry,
Drop-in replacement for flutter_test's testWidgets with Allure reporting.
Implementation
void testWidgets(
String description,
ft.WidgetTesterCallback callback, {
bool? skip,
ft.Timeout? timeout,
bool semanticsEnabled = true,
ft.TestVariant<Object?> variant = const ft.DefaultTestVariant(),
Object? tags,
int? retry,
}) {
_ensureAllureInstalled();
final packagePath = resolvePackageTestPathFromDeclaration(
stackTrace: StackTrace.current,
ignoredLibrarySuffixes: _ignoredLibrarySuffixes,
);
final groupPath = PackageTestScopeRegistry.instance.currentPath;
final testPlan = parseTestPlan();
final variantValues = variant.values.toList(growable: false);
for (final value in variantValues) {
PackageTestScopeRegistry.instance.registerTest(packagePath: packagePath);
final variationDescription = variant.describeValue(value);
final combinedDescription = variationDescription.isEmpty
? description
: '$description (variant: $variationDescription)';
final declaredMetadata = buildPackageTestMetadata(
rawName: combinedDescription,
rawTags: normalizePackageTestTags(tags),
groupPath: groupPath,
packagePath: packagePath,
skipped: skip == true,
testCaseName: description,
additionalParameters: <AllureParameter>[
if (variationDescription.isNotEmpty)
AllureParameter(name: 'variant', value: variationDescription),
],
);
PackageTestScopeRegistry.instance.registerMetadata(declaredMetadata);
var effectiveSkip = skip;
if (testPlan != null &&
!includedInTestPlan(
testPlan,
id: declaredMetadata.externalId,
fullName: declaredMetadata.fullName,
nativeSelector: declaredMetadata.nativeSelector,
tags: declaredMetadata.rawTags,
) &&
skip != true) {
effectiveSkip = true;
}
ft.testWidgets(
description,
callback,
skip: effectiveSkip,
timeout: timeout,
semanticsEnabled: semanticsEnabled,
variant: _SingleValueVariant<Object?>(delegate: variant, value: value),
tags: tags,
retry: retry,
);
}
}