2017-03-07 38 views
3

私は新しいVisual Studio(私はNUnitを使用しています)のライブテスト機能を見ています。Visual Studio 2017ライブテストの除外

単体テストには、特定のテストを実行しないようにするための「除外」オプションがあります(統合テスト、低速テストなど)。この情報が格納されますん

enter image description here

?私は、csprojやその他の場所で、ライブテストにテストを含めるべきではないという兆候は見られません。ソースコントロールにチェックインできる情報ファイルがありませんので、私のチームの残りの人は、どのテストを実際のテストで実行しないかを手動で指定する必要はありません。

答えて

5

Include/excludeはユーザーレベルの機能です。これは、特定の編集セッションに対して特定の一連のテストを実行する場合や、自分の好みを維持する場合に非常に便利です。テストが実行されずにその情報が保持されるようにするには、次のようなことを行います。

[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(TRUE)。 } } –

+2

私は上記の回答を更新し、間違ったExcludeFromCodeCoverageAttributeについてのテキストも削除しました。 –

関連する問題