Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 能否将XUnit测试标记为显式?_C#_.net_Testing_Integration Testing_Xunit.net - Fatal编程技术网

C# 能否将XUnit测试标记为显式?

C# 能否将XUnit测试标记为显式?,c#,.net,testing,integration-testing,xunit.net,C#,.net,Testing,Integration Testing,Xunit.net,我正在从NUnit过渡到XUnit(在C#中),我正在编写一些“集成测试”(ITs),我不一定希望测试运行程序作为我的自动构建过程的一部分运行。我通常在手动测试时这样做,因为环境因素(缺少数据等),整个端到端流程可能无法工作 在NUnit中,您可以使用标记测试,测试运行程序只会跳过它(除非您使用特定的标记测试,并告诉测试运行程序显式地以该类别为目标) XUnit是否有类似的方法从测试运行程序中排除测试?我想我是这样的。显然,您可以像这样修改[Fact]属性:[Fact(Skip=“reason”

我正在从NUnit过渡到XUnit(在C#中),我正在编写一些“集成测试”(ITs),我不一定希望测试运行程序作为我的自动构建过程的一部分运行。我通常在手动测试时这样做,因为环境因素(缺少数据等),整个端到端流程可能无法工作

在NUnit中,您可以使用标记测试,测试运行程序只会跳过它(除非您使用特定的标记测试,并告诉测试运行程序显式地以该类别为目标)

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

我想我是这样的。显然,您可以像这样修改
[Fact]
属性:
[Fact(Skip=“reason”)]
。这将跳过测试,但是如果不将属性修改回正常状态,您将无法手动运行它


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

你可以使用
[Trait]
属性,比如在xunit中


这进一步继承了单元、集成等类别。

Jimmy Bogard通过出色的RunnableInDebugOnlyAttribute解决了这一问题。请参阅此博客帖子:

我曾经


因此,这甚至不被认为是构建服务器上的测试,而通常构建调试版本的开发人员会注意到该测试失败,我希望有更好的方法来实现这一点。我也有一堆“性能”类型的测试,我想保留它们,这样我可以手动运行它们,但我不希望它们由测试运行者自动运行。我正在使用的解决方案(我不喜欢)是改变

[事实]
至//[事实]

我不喜欢这个解决方案的主要原因是,当我想手动运行测试时,它需要额外的步骤,即我必须先取消注释
[Fact]
。但它确实对我有用,尽管有点笨拙


我真正想要的是一种将测试作为测试进行营销的方法,但这种方法只能手动调用,不能由测试运行者调用。但是我还没有找到一种方法来做到这一点。

这并不能清楚地表示一种方法来修饰测试方法,使其能够手动测试,但不能在整个测试套件中运行。
[Trait ("Category", "Integration")]
public class RunnableInDebugOnlyAttribute : FactAttribute
{
    public RunnableInDebugOnlyAttribute()
    {
        if (!Debugger.IsAttached)
        {
            Skip = "Only running in interactive mode.";
        }
    }
}
#if DEBUG
// Must test manually with https://docs.microsoft.com/en-us/sysinternals/downloads/process-explorer
[Fact]
#endif