你能将XUnit测试标记为显式吗?

neu*_*990 17 .net c# testing integration-testing xunit.net

我正在从NUnit过渡到XUnit(在C#中),我正在编写一些"集成测试"(IT),我不一定希望测试运行器作为自动构建过程的一部分运行.我通常这样做是为了手动测试,当完整的端到端流程因环境因素(缺少数据等)而无法工作时

在NUnit的,你可能标志着与测试明确属性,它只会得到由测试运行跳过(除非你标有特定的测试类别属性,并告诉测试运行的目标该类别明确).

XUnit是否有类似的方法从测试运行器中排除测试?

Bre*_*ope 16

Jimmy Bogard用一个很好的RunnableInDebugOnlyAttribute解决了这个问题.请参阅此博客文章:在xUnit.net中显式运行测试

public class RunnableInDebugOnlyAttribute : FactAttribute
{
    public RunnableInDebugOnlyAttribute()
    {
        if (!Debugger.IsAttached)
        {
            Skip = "Only running in interactive mode.";
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 半 Hacky,但考虑到它不是内置的,这是克服限制的一种非常下降的方式。 (2认同)

neu*_*990 14

我想我找到了.显然,您可以[Fact]像这样修改属性:[Fact(Skip="reason")].这将跳过测试,但是如果不将属性恢复正常,您将无法手动运行它.

我会继续寻找更好的方法.

  • 您无法显式运行跳过的测试。 (4认同)