-
Notifications
You must be signed in to change notification settings - Fork 162
Description
Change proposed
EngineSetting.SkipNonTestAssemblies currently only skips assemblies marked with the NUnit 3 framework's [NonTestAssembly] attribute. For v4, I propose that we should remove the requirement for [NonTestAssembly].
The new behaviour of --skipnontestassemblies should be that any assemblies passed into the engine in which no valid tests can be found are passed over silently. Assemblies would be designated in the xml as "Skipped" rather than "Invalid". As current behaviour, the console exit code would be unaffected by skipped assemblies.
Reason for change in behaviour
- This change would make the feature better match what seems to be common user expectation
- It would allow new uses of existing engine functionality such as Should --Explore Error On "Invalid" Assemblies?ย #794
- It would be an improvement for use cases such as passing in a .NET Solution file, which may likely also contain non-test projects a user would not wish to add the
[NonTestAssembly]to - It better matches the goal of the NUnit Engine being framework-independent - it allows greater use of a feature which is only currently usable with the v3 engine.
- It opens up the possibility of using wildcards to discover test assemblies, as commonly used in runners like TeamCity and Azure Devops.
Possible failure cases caused by change
As far as I can think, this would be a safe change to make, there is no way existing test runs could silently being to fail/not run.
The risk (and motivation for the original implementation behaviour) is that we should have a belt/braces solution to skipping tests assemblies, as it could be too easy for a user to inadvertently skip test assemblies they were expecting to run. My personal opinion is that this is unnecessary, and a user changing the configuration of a test run which uses this flag should be doing sufficient checking to ensure that test assemblies are being ran as they expected.