
kevmoo/source_gen_test
Developer toolsЭта страница переведена автоматически. Технические детали смотрите в оригинале. Открыть оригинал
Тестируйте API, чтобы упростить создание надежного теста для генераторов пакетов:source gen
Обзор
Упростите тестирование генераторов, полученных из пакета:source gen, путем аннотирования тестовых файлов. Тест на золотой выходной файл, если вы также хотите написать тесты на самом выходе. Используйте картезианский продукт и проверьте GeneratorBatch для проверки больших матриц перестановок AST / декларирования против генератора или GeneratorForAnnotation в одном общем пакете: анализирующем контексте и пакетированном Isolate. SpawUri Runtime Pass: Package:source gen test поставляется в комплекте с навыками работы с генератором для стресс-тестирования и реализациями GeneratorForAnnotation с картезианским продуктом и проверкой GeneratorBatch. Если ваш пакет зависит от source gen test в dev dependencies, установите все связанные навыки из ваших зависимостей с помощью пакета:навыки: Или установите навык непосредственно с GitHub:
Обзор (машинный перевод)
Упростите испытание Generators, полученное из package:source_gen
Аннотация тестовых файлов.
Тест на золотой выходной файл, если вы также хотите написать тесты на выходе себя.
Также предоставляются другие помощники.
Комбинаторная проверка партии ([T2])
Используйте [[Т3]] и [[Т4]] для проверки больших матриц.
АСТ/декларация о перестановках [[Т5]] или [[Т6]]
в единый общий package:analyzer контекст и сложенный Isolate.spawnUri
Пропуск по времени выполнения:
AI Agent Skillsource-gen-test-fuzz
[10] Корабли в комплекте
[11] Умение действовать
Тестирование на стресс Generator и GeneratorForAnnotation
[14] и [15].
Если у вас есть source_gen_test в dev_dependencies, установите все
навыки из ваших зависимостей с
[[Т18]]:
Или установите навык непосредственно с GitHub:
Эта страница переведена автоматически. Технические детали смотрите в оригинале.
README
Make it easy to test Generators derived from package:source_gen by
annotating test files.
@ShouldGenerate(
r'''
const TestClass1NameLength = 10;
const TestClass1NameLowerCase = 'testclass1';
''',
configurations: ['default', 'no-prefix-required'],
)
@ShouldThrow(
'Uh...',
configurations: ['vague'],
element: false,
)
@TestAnnotation()
class TestClass1 {}
Test against a golden output file if you also want to write tests on the output itself.
part 'goldens/testclass2.dart';
@ShouldGenerateFile(
'goldens/testclass2.dart',
partOfCurrent: true,
configurations: ['default', 'no-prefix-required'],
)
@ShouldThrow(
'Uh...',
configurations: ['vague'],
element: false,
)
@TestAnnotation()
class TestClass2 {}
Other helpers are also provided.
Combinatorial Batch Verification (verifyGeneratorBatch)
Use cartesianProduct and verifyGeneratorBatch to validate large matrices of
AST/declaration permutations against a Generator or GeneratorForAnnotation
in a single shared package:analyzer context and batched Isolate.spawnUri
runtime pass:
final axes = cartesianProduct({
'fieldType': ['int', 'int?', 'List'],
'includeIfNull': ['true', 'false'],
});
final report = await verifyGeneratorBatch(
generator: MyGenerator(),
imports: const ["import 'package:my_pkg/annotations.dart';"],
cases: [
for (var i = 0; i < axes.length; i++)
CodegenCase(
id: 'case_$i',
declarations: '''
@MyAnnotation(includeIfNull: ${axes[i]['includeIfNull']})
class Case$i {
final ${axes[i]['fieldType']} value;
Case$i(this.value);
}
''',
runtimeCheck: 'final c = Case$i(null);',
),
],
);
AI Agent Skill (source-gen-test-fuzz)
package:source_gen_test ships a bundled
source-gen-test-fuzz agent skill for
stress-testing Generator and GeneratorForAnnotation implementations with
cartesianProduct and verifyGeneratorBatch.
If your package depends on source_gen_test in dev_dependencies, install all
bundled skills from your dependencies with
package:skills:
dart run skills@ get
Or install the skill directly from GitHub:
dart run skills@ add kevmoo/source_gen_test --skill source-gen-test-fuzz
# or
npx skills add kevmoo/source_gen_test --skill source-gen-test-fuzz
Рекомендуемые инструменты
Попробуйте другой запрос или уберите фильтр.
Установка
npx skillfish add kevmoo/source_gen_test