I'm making the transition from NUnit to XUnit (in C#), and I was writing some "Integrated Tests" (ITs) that I don't necessarily want the test runner to run as part of my automated build process. I typically do this for manually testing, when the full end to end process might not work because of environmental factors (missing data, etc.)
In NUnit, you could mark a test with the Explicit attribute and it would just get skipped by the test runner (unless you marked the test with a specific Category attribute and told the test runner to target that category explicitly).
Does XUnit have a similar way to exclude tests from the test runner?
Jimmy Bogard solved this with a nice RunnableInDebugOnlyAttribute. See this blog post: Run tests explicitly in xUnit.net
I think I found it. Apparently, you can modify your
[Fact]
attribute like so:[Fact(Skip="reason")]
. This will skip the test, but you'll have no way of running it manually without modifying the attribute back to normal.I'll keep looking for a better way.
I used
So this is not even considered to be a test on a build server while a developer who usually builds a debug version will notice that this test fails
You can use the
[Trait]
attribute for that, like in the xunit example, e.g.,This project takes it a little further and inherits categories like unit, integration, etc.