Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support external custom Formatters #481

Open
brittf19 opened this issue Jun 13, 2022 · 1 comment
Open

Support external custom Formatters #481

brittf19 opened this issue Jun 13, 2022 · 1 comment

Comments

@brittf19
Copy link

🤔 What's the problem you're trying to solve?

I have multiple GoDog testing projects and a custom formatter that i wrote for them. But, i unfortunately found out that a custom formatter must be part of the testing package and compiled with the test files as part of the package, otherwise GoDog fails with an error: "unregistered formatter". I would like to suggest an option for loading a precompiled formatter that is independent of the testing package.
I would like to use this formatter in various different testing projects. This puts me in a situation that i need to copy the source files to each project and recompile the tests. Its harder for me to change my code and follow up the formatter's bugs.

✨ What's your proposed solution?

Add an option to load a formatter package. something like:
-f path/to/formatter.bin would be nice. even maybe add a flag for an outside formatter if it would be easier for you to add an option and not adjust the existing one.

⛏ Have you considered any alternatives or workarounds?

I'm currently copying the files to each testing project package/directory and recompiling.

@vearutop
Copy link
Member

Is it correct that you're using godog in CLI mode? Please have a look at #478 and share your vote/opinion.

This feature does not seem that much feasible since all solutions to create precompiled plugins in Go impose limitations.

My suggestion is to add your custom formatter to a library module (or create a new one) and use it as a dependency in your projects, for example like it is done here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants