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

Refactor test runners #238

Open
ycombinator opened this issue Jan 29, 2021 · 1 comment
Open

Refactor test runners #238

ycombinator opened this issue Jan 29, 2021 · 1 comment

Comments

@ycombinator
Copy link
Contributor

Initially we only had two types of test runners: pipeline and system. Both operated at the data stream level (as opposed to the package level). Then we introduced a third type of test runner: asset. This one operated at the package level. To make this work with the existing test runner implementation, we had to introduce a TestRunner interface with a method named CanRunPerDataStream, which feels a bit smelly.

More recently, we've introduced a feature of letting tests be skippable via a configuration block in a test definition. While implementing this feature, @mtojek observed how it could be quite easy in the current test runner implementation to forget to add this feature for future test runner types. More discussion here: https://github.com/elastic/elastic-package/pull/221/files#r565955299.

It's starting to become apparent that the original test runner implementation might be ripe for a refactor. This issue is to track this change.

@jsoriano
Copy link
Member

jsoriano commented Nov 10, 2023

The situation is getting worse, we have now also benchmark runners, that follow the same approach and have some code duplicity with the system test runners. When working on #1549 I found that I had to add the same code in multiple copies of the same functionality. We should probably prioritize some refactors around this area focused on reusing code.

ccing @kpollich who was tracking technical debt in the team.

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