2017-03-07 115 views
3

我正在查看新Visual Studio中的實時測試功能(我正在使用NUnit)。Visual Studio 2017實時測試排除

單元測試有一個「排除」選項,指示不應該運行特定的測試(也許它們是集成測試或慢速測試,或其他)。

enter image description here

哪裏獲取存儲這些信息?我沒有在csproj或其他任何地方看到任何測試不應該包含在Live Testing中的跡象。不應該有一些信息文件可以在源代碼控制中查看,以便我們團隊的其他人員不必手動指定哪些測試不應該通過實時測試運行?

回答

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); 
    } 
} 
+0

這似乎不工作。我在測試方法和測試夾具上都試過[ExcludeFromCodeCoverage]。測試仍在運行。 –

+1

是的,這隻能阻止可視化,測試仍然運行。這可以幫助: [ExcludeFromCodeCoverage] 公共類SkipLiveFactAttribute:。FactAttribute { 私人靜態布爾s_lutRuntimeLoaded = AppDomain.CurrentDomain.GetAssemblies()任何(A => a.GetName()==名稱「Microsoft.CodeAnalysis.LiveUnitTesting 。運行」); public override string Skip => s_lutRuntimeLoaded? 「測試排除在實時單元測試」:「」; } 公共類的Class1 { [SkipLiveFact] 公共無效F() { Assert.True(真); } } –

+2

我已經更新了上面的答案,並且還刪除了有關ExcludeFromCodeCoverageAttribute的錯誤文本。 –

相關問題