Hi Michael,
I understand your comment in general, but not specifically as it
applies to this issue.
Are you saying the ActionAttribute feature should not exist? Or do you
have some idea for resolving this issue in a way that is more
consistent with the language? If it's the latter, I'd like to hear it
because, frankly, I'm not really happy about how ActionAttributes
work right now.
In general, NUnit has always tried to avoid language-based features,
which cannot be duplicated across all .NET languages. However, there
is also such a thing as .NET-supported polymorphism and we could
certainly leverage that a great deal more than we do. In xUnit, they
manage to stay more in line with C# polymorphism by not supporting
certain things that are not viewed as "good to do" for developers. In
practice, some such features end up as extensions. In any case, the
xUnit framework is much more strongly opinionated than NUnit is today
regarding how people should write tests. It's unlikely that either of
us will change in our overall outlook.
ActionAttributes, to the extent that they enable cross-cutting
aplication of code through attributes, is definitely outside the
normal OO paradigm. But that's also true of the SetUp and TearDown
attributes, which have been with us since NUnit 2.0 and are generally
accepted practice in many other frameworks. Once you have such
features, you have to figure out how they interact with normal
polymorphism and that's what the present issue is all about.
Charlie
On Wed, Dec 16, 2015 at 12:24 AM, Michael <
mwpow...@gmail.com> wrote:
> For each level of inheritance? Why not leverage language level features like polymorphism, virtual, override, etc? I've said that all along when it came to designing test fixture hierarchies. I am somewhat surprised by the intended functionality to be perfectly frank. Xunit for instance tends to be more language level by contrast. I happen to think that some level of attribution is desirable, but there comes a point that you're forcing the language to operate in ways it was never intended to do so. That's my two cents on the topic. HTH
>