我很难告诉Visual Studio Online忽略在VSO构建期间我不想运行的某些测试。我在我的测试库中有一组测试我不希望它们在在线构建过程中运行。这些测试可能需要花费极长的时间才能完成,因此我不希望它们成为将在构建阶段执行的测试的一部分,因此构建代理需要尽可能少的时间来完成构建。所以,我可以用这样的NUnit类别来标记那些测试
/// <summary>
/// This is a long running test
/// </summary>
[Test]
[Category("LongRunningTest")]
public void ObtainsTourInformationTest() {
...
}
这是我的测试任务定义的部分捕获。我在某个地方读到了我可以使用Test过滤条件来达到这个目的,但我还没弄清楚。
我使用以下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的测试。
“TestCategory!= LongRunningTest”
或者,如果在Visual Studio中联机工作,请按Traits对测试进行分组,并仅选择要运行的测试。
另一种方法是将所有长时间运行的测试放在一个单独的项目中,然后:
以下是我们如何在Azure DevOps中设置的屏幕截图:
我们发现这对于击中本地数据库的端到端测试特别有效,因此不适用于DevOps。将它们放在自己的项目中是理想的,因为端到端测试项目可以有一个到测试数据库的连接字符串,而在任何单元测试项目中没有连接确保它们不会意外地触及数据库。