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

Separate assembly for NUnit extensibility #1049

Open
CharliePoole opened this issue Dec 15, 2021 · 2 comments
Open

Separate assembly for NUnit extensibility #1049

CharliePoole opened this issue Dec 15, 2021 · 2 comments
Labels
Milestone

Comments

@CharliePoole
Copy link
Member

This feature was first developed as "Engine Extensibility" so the implementation is embodied in an engine service. This makes it next to impossible to use extensibility in other places, like in the console runner, third party runners and even in our own agents.

I propose that we create a separate assembly... NUnit.Extensibility to contain most of the implementation... the existing engine service would simply use an API to access the implementation details.

As a subsquent improvement (but not part of this issue) we could implement the IFrameworkDriverFactory extension in nunit.core using the API directly, without need for full access to engine services.

I'm calling this an idea for now and asking for @nunit/engine-team discussion.

@CharliePoole
Copy link
Member Author

@jnm2 @mikkelbu Any thoughts on this?

@CharliePoole
Copy link
Member Author

CharliePoole commented Feb 1, 2022

I'm fleshing this out further and starting to work on it. Hoping that it will make enough sense to engender comments as I get more into the details!

Here's how I break this down stepwise...

Pre-4.0 Change:

Non-Breaking 4.0 Changes

Breaking 4.0 Change:

  • Modify engine package to use the tools directory and have NUnit-Console load the engine as an extension using ExtensionManager.

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

No branches or pull requests

1 participant