如何告诉Visual Studio Online VS Test Task忽略某些nUnit测试类别

问题描述 投票:2回答:2

我很难告诉Visual Studio Online忽略在VSO构建期间我不想运行的某些测试。我在我的测试库中有一组测试我不希望它们在在线构建过程中运行。这些测试可能需要花费极长的时间才能完成,因此我不希望它们成为将在构建阶段执行的测试的一部分,因此构建代理需要尽可能少的时间来完成构建。所以,我可以用这样的NUnit类别来标记那些测试

/// <summary>
///     This is a long running test
/// </summary>
[Test]
[Category("LongRunningTest")]
public void ObtainsTourInformationTest() {
...
}

这是我的测试任务定义的部分捕获。我在某个地方读到了我可以使用Test过滤条件来达到这个目的,但我还没弄清楚。 Visual Studio Test Task definition

我使用以下NUnit包

<package id="NUnit.Runners" version="2.6.4" />  
<package id="NUnit" version="2.6.4"/>
<package id="NUnitTestAdapter" version="2.0.0" /> 

所以,基本上,我需要知道的是如何通过Visual Studio Online Test Task来忽略标有NUnit Category Attribute的测试。

c# unit-testing nunit azure-devops tfsbuild
2个回答
5
投票

“TestCategory!= LongRunningTest”

或者,如果在Visual Studio中联机工作,请按Traits对测试进行分组,并仅选择要运行的测试。


0
投票

另一种方法是将所有长时间运行的测试放在一个单独的项目中,然后:

  • 排除该特定项目(正如我在下面的示例中使用Membership.Business.LibraryCS.IntegrationTests.dll所做的那样)
  • 或者对仅包含长时间运行测试的项目使用标准命名约定,然后排除所有这些项目(正如我在下面的示例中对其名称中带有'endtoend'的项目所做的那样)

以下是我们如何在Azure DevOps中设置的屏幕截图:

enter image description here

我们发现这对于击中本地数据库的端到端测试特别有效,因此不适用于DevOps。将它们放在自己的项目中是理想的,因为端到端测试项目可以有一个到测试数据库的连接字符串,而在任何单元测试项目中没有连接确保它们不会意外地触及数据库。

© www.soinside.com 2019 - 2024. All rights reserved.