KS

kevmoo/source_gen_test

Developer tools

Эта страница переведена автоматически. Технические детали смотрите в оригинале. Открыть оригинал

20 stars Качество 63 Тренд 30MIT

Тестируйте 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
Открыть полный README на GitHub

Рекомендуемые инструменты

Попробуйте другой запрос или уберите фильтр.

Установка

npx skillfish add kevmoo/source_gen_test
Новичок в MCP? Начните с руководства на mcpskill.org →