From b78d412650c42ec8e859711420dbad03e190bc51 Mon Sep 17 00:00:00 2001 From: Softonik Date: Wed, 28 Jan 2026 11:33:35 +0300 Subject: [PATCH] =?UTF-8?q?+=20=20=D0=A1=D1=86=D0=B5=D0=BD=D0=B0=D1=80?= =?UTF-8?q?=D0=B8=D0=B9:=20=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D1=88=D0=B0=D0=B3=D0=B0,=20=D0=B8=20?= =?UTF-8?q?=D1=81=20=D1=80=D0=BE=D0=B4=D0=BD=D1=8B=D0=BC,=20=D0=B8=20?= =?UTF-8?q?=D1=81=20=D0=B4=D1=80=D1=83=D0=B3=D0=B8=D0=BC=20=D1=82=D0=B5?= =?UTF-8?q?=D1=81=D1=82=D0=BE=D0=B2=D1=8B=D0=BC=D0=B8=20=D1=84=D0=B0=D0=B9?= =?UTF-8?q?=D0=BB=D0=B0=D0=BC=D0=B8=20-=20=D0=BC=D0=B5=D0=BD=D1=8F=D0=B5?= =?UTF-8?q?=D1=82=D1=81=D1=8F=20=D1=80=D0=BE=D0=B4=D0=BD=D0=BE=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/formatters/ast/ast.go | 14 ++++- pkg/formatters/ast/ast/features/app.feature | 60 +++++++++++++++++++++ 2 files changed, 72 insertions(+), 2 deletions(-) diff --git a/pkg/formatters/ast/ast.go b/pkg/formatters/ast/ast.go index 5d6e802..cd496b8 100644 --- a/pkg/formatters/ast/ast.go +++ b/pkg/formatters/ast/ast.go @@ -51,14 +51,24 @@ func (a *ASTer) найтиТестовыйФайл() error { return err } - имя, err := найтиТестовыйФайлВЭтойДире() + имя := a.сгенеритьИмяТестовогоФайла() + _, err = os.Stat(имя) + if err == nil { + a.pkg_test_go_fname = имя + return nil + } + + имя, err = найтиТестовыйФайлВЭтойДире() if err != nil { return errors.Join(errors.New("Не могу найти *_test.go файл"), err) } a.pkg_test_go_fname = имя - return err + return nil +} +func (a *ASTer) сгенеритьИмяТестовогоФайла() string { + return a.pkg + "_test.go" } func (a *ASTer) добавитьШаг(шаг, f, ps string) error { diff --git a/pkg/formatters/ast/ast/features/app.feature b/pkg/formatters/ast/ast/features/app.feature index b1d9f24..51f247e 100644 --- a/pkg/formatters/ast/ast/features/app.feature +++ b/pkg/formatters/ast/ast/features/app.feature @@ -106,6 +106,66 @@ ``` + Сценарий: Добавление шага, и с родным, и с другим тестовыми файлами - меняется родной + Дано Файл "init_test.go": + ``` + package mypkg + + func InitializeScenario(ctx *godog.ScenarioContext) { + + ctx.Before(func(ctx context.Context, sc *godog.Scenario) (context.Context, error) { + beforeScenario() + return ctx, nil + }) + ctx.After(func(ctx context.Context, sc *godog.Scenario, err error) (context.Context, error) { + afterScenario() + return ctx, nil + }) + InitializeGomegaForGodog(ctx) + } + + ``` + Дано Файл "mypkg_test.go": + ``` + package mypkg + ``` + Дано Файл "a_test.go": + ``` + package mypkg + ``` + Когда Добавляется шаг: "^Привет Мир!$" с функцией "ПриветМир" с "" + То Файл "init_test.go" должен содержать: + ``` + package mypkg + + func InitializeScenario(ctx *godog.ScenarioContext) { + ctx.Step(`^Привет Мир!$`, ПриветМир) + + ctx.Before(func(ctx context.Context, sc *godog.Scenario) (context.Context, error) { + beforeScenario() + return ctx, nil + }) + ctx.After(func(ctx context.Context, sc *godog.Scenario, err error) (context.Context, error) { + afterScenario() + return ctx, nil + }) + InitializeGomegaForGodog(ctx) + } + + ``` + То Файл "mypkg_test.go" должен содержать: + ``` + package mypkg + + func ПриветМир() { + } + + ``` + То Файл "a_test.go" должен содержать: + ``` + package mypkg + ``` + Сценарий: Добавление шага с параметрами: int Дано Файл "init_test.go": ```