3

I am writing an NUnit test that I want run only in the Release configuration. Is there an elegant way of doing this with a test case attribute? Right now, I am surrounding the entire function block with compiler directives:

I am using Nunit 2.5.6.10205.

#if !DEBUG
        [Test]
        public void MyReleaseOnlyTest()
        {
           // stuff
        }
#endif
Stealth Rabbi
  • 10,156
  • 22
  • 100
  • 176

2 Answers2

6

You could use the [Category] attribute. If you mark release only tests with [Category("Release")] then exclude that category in your normal test run and include it in you release run.

So now your test becomes

[Test]
[Category("Release")]
public void MyReleaseOnlyTest()
{
   // stuff
}
Mike Two
  • 44,935
  • 9
  • 80
  • 96
3

Add the Ignore attribute in #if preprocessor, rather than the entire test method.

#if DEBUG
[Ignore("Only to be run in release")] 
#endif

http://msdn.microsoft.com/en-us/library/4y6tbswk.aspx

You can also use the Conditional attribute

[System.Diagnostics.Conditional("RELEASE")]
manojlds
  • 290,304
  • 63
  • 469
  • 417