Visual studio 2010 在VisualStudio2010中,有没有一种方法可以在不使用测试列表的情况下禁用/忽略负载测试?

Visual studio 2010 在VisualStudio2010中,有没有一种方法可以在不使用测试列表的情况下禁用/忽略负载测试?,visual-studio-2010,mstest,load-testing,Visual Studio 2010,Mstest,Load Testing,我不熟悉VisualStudio/MSTest中的负载测试,最近我创建了一个新的负载测试来验证WCF服务的一些高流量场景。我想将其添加到服务的测试项目中,但我不希望在“在解决方案中运行所有测试”时执行测试,也不希望将其作为我们的持续集成构建验证过程的一部分,因为a)运行需要5分钟,b)它正在测试的服务调用生成数千封电子邮件。基本上,我想做的是将[Ignore]属性添加到单元测试中,这样负载测试只在我显式选择运行它时执行 建议禁用测试的唯一方法是使用测试列表(.vsmdi文件),但我对它们没有太多

我不熟悉VisualStudio/MSTest中的负载测试,最近我创建了一个新的负载测试来验证WCF服务的一些高流量场景。我想将其添加到服务的测试项目中,但我不希望在“在解决方案中运行所有测试”时执行测试,也不希望将其作为我们的持续集成构建验证过程的一部分,因为a)运行需要5分钟,b)它正在测试的服务调用生成数千封电子邮件。基本上,我想做的是将
[Ignore]
属性添加到单元测试中,这样负载测试只在我显式选择运行它时执行

建议禁用测试的唯一方法是使用测试列表(.vsmdi文件),但我对它们没有太多经验,它们似乎很难管理,我不想修改我们的CI构建定义,并说VS2012中不推荐使用测试列表。还有其他想法吗


编辑:我接受了Mauricio的答案,那就是将负载测试放在一个单独的项目中,并维护单独的解决方案,一个有负载测试,一个没有。这使您能够在开发期间运行(运行速度更快的)单元测试,并在构建验证期间包括(运行速度较慢的)负载测试,而无需使用测试列表。

为什么不使用
测试列表。我认为这是最好的办法。对于每种测试类型(单元测试、负载测试…),然后在
MSTest
命令中运行所需的
测试列表

  • MSTest\testmetadata:testlists.vsmdi\testlist:UnitTests
    (仅限UnitTests)
  • MSTest\testmetadata:testlists.vsmdi\testlist:LoadTests
    (仅限LoadTests)
  • MSTest\testmetadata:testlists.vsmdi\testlist:UnitTests\testlist:LoadTests
    (UnitTests&LoadTests)

对于您的CI构建定义来说,这不应该是一个问题。为什么?

要将单元测试作为构建过程的一部分运行,需要将构建定义配置为指向测试容器(通常是包含测试类和方法的.dll文件)。负载测试不是这样工作的,它们是在MSTest引擎使用的.loadtest文件(只是xml文件)中定义的

如果不进一步更改CI生成定义,则将忽略负载测试

如果要作为生成的一部分运行测试,则需要配置生成定义以使用.loadtest文件

远离测试列表。就像你说的,他们在VS11中被弃用了


编辑:避免将负载测试作为Visual Studio“全部运行”测试的一部分运行的最简单方法是为负载测试创建不同的解决方案。

主要要求是当您从VS中选择“在解决方案中运行所有测试”时,不要运行负载测试;关于如何实现这一点有什么想法吗?想到的最简单的方法是为负载测试创建一个不同的解决方案。这应该不是问题,因为负载和Web测试对您的解决方案代码没有任何依赖关系(它们通常是后台测试,除非您使用单元测试来编写负载测试)/谢谢——创建不同解决方案的建议似乎是目前最好的选择(尽管它仍然会增加一些开销)。我将把这个标记为答案!