You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Pluggable agents generally contain two assemblies, the launcher and the agent itself. TestAgency loads the launcher in it's own context and launcher starts the separate agent executable as a separate process. This means that the agent is independent of the engine, as intended. It uses whatever versions of nunit.engine.api, nunit.agent.core, etc. with which it was initially built.
It was initially thought that loading the launcher in the context of the engine and runner wouldn't cause problems. But that isn't the case. See issue #1727 for a very simple change that breaks all our launchers.
It would be a substantial improvement to the design if we were able to use launchers in their own context, with the same dependencies with which they were built. Ideally, we could do this by changing the engine alone but if necessary we could modify the existing agents and re-release them if necessary, before we create any more of them.
Modify ExtensionManager and ExtensionNode to create .NET Framework extensions derived from MarshalByRefObject in a separate AppDomain. Modify launcher base class, LocalProcessAgentLauncher, to derive from MarshalByRefObject. Do a pre-release so agents can use this build.
Modify each agent launcher to derive from MarshalByRefObject and release new versions.
Net462PluggableAgent
Net80PluggableAgent
Net90PluggableAgent
Update NUnit.ConsoleRunner package to reference new agent versions
Activity
CharliePoole commentedon Jul 4, 2025
TASKS
ExtensionManagerandExtensionNodeto create .NET Framework extensions derived fromMarshalByRefObjectin a separate AppDomain. Modify launcher base class,LocalProcessAgentLauncher, to derive fromMarshalByRefObject. Do a pre-release so agents can use this build.MarshalByRefObjectand release new versions.Net462PluggableAgentNet80PluggableAgentNet90PluggableAgentNUnit.ConsoleRunnerpackage to reference new agent versions