Visual Studio 2017实时测试排除

时间:2017-03-07 19:59:58

标签: visual-studio unit-testing

我正在查看新Visual Studio中的实时测试功能(我使用的是NUnit)。

有一个"排除"单元测试的选项,表示不应运行特定的测试(可能是集成测试,或慢速测试,或其他)。

enter image description here

此信息存储在哪里?我没有在csproj或其他任何地方看到测试不应包含在Live Testing中的任何迹象。难道不存在某些我可以检查源代码控制的信息文件,因此我的团队的其他成员不必手动指定不应通过实时测试运行哪些测试吗?

2 个答案:

答案 0 :(得分:5)

包含/排除是用户级功能。当您想要为特定编辑会话运行一组特定测试或保留您自己的个人首选项时,这非常有用。为了防止测试运行并保留该信息,您可以执行以下操作:

[ExcludeFromCodeCoverage]
public class SkipLiveFactAttribute : FactAttribute
{
    private static bool s_lutRuntimeLoaded = AppDomain.CurrentDomain.GetAssemblies().Any(a => a.GetName().Name == "Microsoft.CodeAnalysis.LiveUnitTesting.Runtime");

    public override string Skip => s_lutRuntimeLoaded ? "Test excluded from Live Unit Testing" : "";
}

public class Class1
{
    [SkipLiveFact]
    public void F()
    {
        Assert.True(true);
    }
}

答案 1 :(得分:2)

现在,您可以使用以下属性在源代码中指定要从Live Unit Testing中排除目标测试方法的地方:

For xUnit: [Trait("Category", "SkipWhenLiveUnitTesting")]
For NUnit: [Category("SkipWhenLiveUnitTesting")]
For MSTest: [TestCategory("SkipWhenLiveUnitTesting")]

您可以通过here

解决此问题