Can you mark XUnit tests as Explicit?

后端 未结 4 1417
你的背包
你的背包 2021-02-05 05:43

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 aut

相关标签:
4条回答
  • 2021-02-05 05:54

    You can use the [Trait] attribute for that, like in the xunit example, e.g.,

    [Trait ("Category", "Integration")]
    

    This project takes it a little further and inherits categories like unit, integration, etc.

    0 讨论(0)
  • 2021-02-05 05:55

    Jimmy Bogard solved this with a nice RunnableInDebugOnlyAttribute. See this blog post: Run tests explicitly in xUnit.net

    public class RunnableInDebugOnlyAttribute : FactAttribute
    {
        public RunnableInDebugOnlyAttribute()
        {
            if (!Debugger.IsAttached)
            {
                Skip = "Only running in interactive mode.";
            }
        }
    }
    
    0 讨论(0)
  • 2021-02-05 05:56

    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.

    0 讨论(0)
  • 2021-02-05 06:00

    I used

    #if DEBUG
    // Must test manually with https://docs.microsoft.com/en-us/sysinternals/downloads/process-explorer
    [Fact]
    #endif
    

    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

    0 讨论(0)
提交回复
热议问题