Package Description
$ dotnet add package Reo.Core.TestCaseCollector.CodeGenerationПакет Reo.Core.TestCaseCollector.CodeGeneration предназначен для автоматической генерации кода тестов и упрощения работы с синтаксическими деревьями в проектах, использующих C# и Roslyn. Он решает проблему ручного написания повторяющихся тестовых сценариев и позволяет автоматически создавать тесты на основе атрибутов или аннотаций в коде. Пакет также предоставляет инструменты для анализа и манипуляции с кодом, что ускоряет разработку и повышает точность тестирования.
Класс, предоставляющий расширения для работы с Roslyn, включая:
Механизм автоматической регистрации служб и генераторов тестов в контейнере DI (например, в ASP.NET Core). Позволяет интегрировать генерацию тестов в приложения с минимальными усилиями.
Атрибуты, которые можно использовать в исходном коде, чтобы указать, какие методы или классы требуют автоматической
генерации тестов. Например, [GenerateTests] может быть применён к методам, чтобы сгенерировать соответствующие тесты.
Настройки, которые позволяют контролировать поведение генерации тестов, например:
Используйте следующие команды для установки пакета через NuGet:
# NuGet Package Manager
Install-Package Reo.Core.TestCaseCollector.CodeGeneration
# .NET CLI
dotnet add package Reo.Core.TestCaseCollector.CodeGeneration
Добавьте службу в ConfigureServices вашего Startup.cs или Program.cs:
services.AddTestCaseGeneration();
Настройки можно указать в :
appsettings.json{
"TestCaseGeneration": {
"IgnoreMethods": ["TestMethod1", "TestMethod2"],
"TestTemplate": "GeneratedTests_{ClassName}"
}
}[GenerateTests]
public void MyMethod()
{
// Логика метода
}После сборки проекта будет сгенерирован тестовый класс GeneratedTests_MyMethod.
[GenerateTests] через Roslynvar methods = compilation.GetSyntaxTrees()
.SelectMany(tree => tree.GetRoot().DescendantNodes())
.OfType<MethodDeclarationSyntax>()
.Where(method => method.AttributeLists
.Any(attr => attr.Attributes.Any(a => a.Name.ToString() == "GenerateTests")));public void ConfigureServices(IServiceCollection services)
{
services.AddControllers();
services.AddTestCaseGeneration(); // Регистрация генератора тестов
}Этот пакет распространяется под лицензией MIT. Детали лицензии можно найти в файле LICENSE.