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": ```