Skip to content

Support Version 3 NUnit Extensions #1649

@CharliePoole

Description

@CharliePoole

It was originally decided, without much discussion, that old V3 extensions would not be supported in V4, but would need to be rewritten to use the new interfaces. See #1009. However, this will be quite inconvenient for users, while waiting for the old extensions to be re-issued.

On re-examination, it seems feasible to support old extensions by use of reflection. This will introduce performance issues for extensions which are called frequently, but is still an improvement over not supporting them at all.

A experimental spike already exists, which creates a wrapper for each old extension using the new interfaces. That implementation injects the wrapper at the point where each type of extension is used. It includes a method cache for each extension point to avoid the work of acquiring the MethodInfo each time a call is made.

I'll use the same wrappers and caching mechanism for this issue but will try to wrap and inject the old interfaces centrally, at the point where ExtensionManager creates the ExtensionNode representing an extension.

@nunit/core-team @nunit/engine-team @nunit/team-city-team

Metadata

Metadata

Labels

FeatureV4All issues related to V4 or later - use -label:V4 to get V3 issues

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions