如何告诉 Visual Studio 在线 VS 测试任务忽略某些 nUnit 测试类别
How to tell Visual Studio Online VS Test Task to ignore certain nUnit test categories
我很难告诉 Visual Studio Online 在 VSO 构建期间忽略某些我不想 运行 的测试。我的测试库中有一组测试,我不希望它们在在线构建过程中 运行。这些测试可能需要非常长的时间才能完成,所以我不希望它们成为将在构建阶段执行的测试的一部分,因此构建代理需要尽可能短的时间来完成构建。所以,我可以用这样的 NUnit 类别标记那些测试
/// <summary>
/// This is a long running test
/// </summary>
[Test]
[Category("LongRunningTest")]
public void ObtainsTourInformationTest() {
...
}
这是我的测试任务定义的部分捕获。我在某处读到我可以为此目的使用 测试筛选条件 ,但我还没有弄明白。
我正在使用以下 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 在线测试任务以忽略标有 NUnit 类别属性的测试。
"TestCategory!=LongRunningTest"
或者,如果在 Visual Studio 中在线工作,请按特征对测试进行分组,select 仅 运行。
另一种方法是将所有长 运行 测试放在一个单独的项目中,然后:
- 排除该特定项目(正如我在下面的示例中对 Membership.Business.LibraryCS.IntegrationTests.dll 所做的那样)
- 或者对仅包含长 运行 测试的项目使用标准命名约定,然后排除所有这些项目(正如我在示例中对名称中包含 'endtoend' 的任何项目所做的那样下)
下面是我们如何在 Azure DevOps 中进行设置的屏幕截图:
我们发现这对于命中本地数据库的端到端测试特别有效,因此不适用于 DevOps。在这种情况下,将它们放在自己的项目中是理想的,因为端到端测试项目可以有一个到测试数据库的连接字符串,而在任何单元测试项目中没有该连接可确保它们不会意外命中数据库。
我很难告诉 Visual Studio Online 在 VSO 构建期间忽略某些我不想 运行 的测试。我的测试库中有一组测试,我不希望它们在在线构建过程中 运行。这些测试可能需要非常长的时间才能完成,所以我不希望它们成为将在构建阶段执行的测试的一部分,因此构建代理需要尽可能短的时间来完成构建。所以,我可以用这样的 NUnit 类别标记那些测试
/// <summary>
/// This is a long running test
/// </summary>
[Test]
[Category("LongRunningTest")]
public void ObtainsTourInformationTest() {
...
}
这是我的测试任务定义的部分捕获。我在某处读到我可以为此目的使用 测试筛选条件 ,但我还没有弄明白。
我正在使用以下 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 在线测试任务以忽略标有 NUnit 类别属性的测试。
"TestCategory!=LongRunningTest"
或者,如果在 Visual Studio 中在线工作,请按特征对测试进行分组,select 仅 运行。
另一种方法是将所有长 运行 测试放在一个单独的项目中,然后:
- 排除该特定项目(正如我在下面的示例中对 Membership.Business.LibraryCS.IntegrationTests.dll 所做的那样)
- 或者对仅包含长 运行 测试的项目使用标准命名约定,然后排除所有这些项目(正如我在示例中对名称中包含 'endtoend' 的任何项目所做的那样下)
下面是我们如何在 Azure DevOps 中进行设置的屏幕截图:
我们发现这对于命中本地数据库的端到端测试特别有效,因此不适用于 DevOps。在这种情况下,将它们放在自己的项目中是理想的,因为端到端测试项目可以有一个到测试数据库的连接字符串,而在任何单元测试项目中没有该连接可确保它们不会意外命中数据库。