实时单元测试排除测试

Live unit testing exclude tests

我知道可以通过右键单击测试项目并选择 "Live Unit Testing" 上下文菜单从实时单元测试中排除整个测试项目。

但在我的解决方案中,我有一些长时间的 running/resource 密集测试,我想排除这些测试。是否可以排除个别测试?

最简单的方法是在编辑器视图中右键单击该方法并选择实时单元测试和排除。

您也可以使用属性以编程方式完成此操作。

对于 xUnit:[Trait("Category", "SkipWhenLiveUnitTesting")]

对于 NUnit:[Category("SkipWhenLiveUnitTesting")]

对于 MSTest:[TestCategory("SkipWhenLiveUnitTesting")]

更多信息请见 Microsoft docs

添加到 adsamcik 的答案中,以下是如何以编程方式排除整个项目(如集成测试项目):

通过 .NET Core 的 csproj 文件:

// xunit
  <ItemGroup>
    <AssemblyAttribute Include="Xunit.AssemblyTrait">
      <_Parameter1>Category</_Parameter1>
      <_Parameter2>SkipWhenLiveUnitTesting</_Parameter2>
    </AssemblyAttribute>
  </ItemGroup>

// nunit
  <ItemGroup>
    <AssemblyAttribute Include="Nunit.Category">
      <_Parameter1>SkipWhenLiveUnitTesting</_Parameter1>
    </AssemblyAttribute>
  </ItemGroup>

// mstest
  <ItemGroup>
    <AssemblyAttribute Include="MSTest.TestCategory">
      <_Parameter1>SkipWhenLiveUnitTesting</_Parameter1>
    </AssemblyAttribute>
  </ItemGroup>

或通过assemblyinfo.cs:

// xunit
[assembly: AssemblyTrait("Category", "SkipWhenLiveUnitTesting")] 

// nunit
[assembly: Category("SkipWhenLiveUnitTesting")]

// mstest
[assembly: TestCategory("SkipWhenLiveUnitTesting")]

我想通了如何通过 . The attributes came from MS's documentation 在 .net core 的 csproj 文件中添加程序集属性。