Is there a way for an NUnit test to end and tell the test runner that it should be considered skipped/ignored, rather than succeeded or failed?
My motivation for this is that I have a few tests that don't apply in certain circumstances, but this can't be determined until the test (or maybe the fixture) starts running.
Obviously in these circumstances I could just return from the test and allow it to succeed, but (a) this seems wrong and (b) I'd like to know that tests have been skipped.
I am aware of the [Ignore] attribute, but this is compiled-in. I'm looking for a run-time, programmatic equivalent. Something like:
if (testNotApplicable) throw new NUnit.Framework.IgnoreTest("Not applicable");
Or is programmatically skipping a test just wrong? If so, what should I be doing?
IgnoreAttribute (NUnit 2.0) The ignore attribute is an attribute to not run a test or test fixture for a period of time. The person marks either a Test or a TestFixture with the Ignore Attribute. The running program sees the attribute and does not run the test or tests.
The [TestFixture] attribute denotes a class that contains unit tests. The [Test] attribute indicates a method is a test method. Save this file and execute dotnet test to build the tests and the class library and then run the tests. The NUnit test runner contains the program entry point to run your tests.
xUnit.net does not require an attribute for a test class; it looks for all test methods in all public (exported) classes in the assembly. Set the Skip parameter on the [Fact] attribute to temporarily skip a test.
NUnit is an open-source unit testing framework in C# that is ported from JUnit automated testing framework. It is a member of the . Net Foundation and is used for development and execution of unit tests with .
Assert.Ignore();
is specifically what you're asking for, though there is also:
Assert.Inconclusive();
I am having a TestInit()
, TestInitialize
method where there is a condition like:
//This flag is the most important.False means we want to just ignore that tests if (!RunFullTests) Assert.Inconclusive();
RunFullTests is a global Boolean variable located in a constant class. If we set this to false the whole test class will be ignored and all the tests under this class will be ignored.
I use this when there are integration tests.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With