【问题标题】:Running only part of the set of all tests with MSTest使用 MSTest 仅运行所有测试集的一部分
【发布时间】:2011-04-02 05:26:03
【问题描述】:

我想知道是否有任何简单方法可以使用 MSTests 运行特定类别的测试。我目前有一些单元和集成测试。一般来说,我只想运行单元测试。

我知道您可以用类别标记每个测试方法,但从我所见,它似乎只有在您想创建不同的测试列表时才有用。这似乎不太有用,因为对于每个新测试,我都必须更新该列表。

我也尝试过将集成测试放在一个项目中,将单元测试放在另一个项目中,但我只能看到 3 个用于运行测试的选项:解决方案和上下文范围和受影响的测试,所以我想这无济于事很多。

你们是怎么做到的?

谢谢

【问题讨论】:

    标签: c# .net unit-testing mstest integration-testing


    【解决方案1】:

    对于在最初提出此问题两年半后运行 VS2012 的任何人,您可以单击测试->Windows->测试资源管理器,然后单击搜索框左侧的小树/层次结构图标,然后对您的测试进行分组,并选择按“特征”分组 - 显然“特征”表示“TestCategories”。然后您可以右键单击分组来运行/调试您的测试。

    或者,如果您愿意,您可以转到命令行并按类别运行测试,但我更喜欢使用 GUI 测试运行器运行测试,这样我就不必转到命令行,等等我可以点击测试直接进入有问题的测试代码。这样做的说明在这里:http://msdn.microsoft.com/en-us/library/dd286683.aspx

    【讨论】:

      【解决方案2】:

      您要在什么环境下运行测试?在 CI 期间?在您的开发箱上构建之后?我个人认为使用类别是最好的方法。您不必创建列表。在测试列表编辑器上,您可以按类别排序。只需使用“UnitTest”类别(或其他)突出显示所有测试,检查所有并选择运行。

      此外,如果您将它们放在不同的项目中,那么您可以按项目分组并选择单元测试项目中的所有项目。

      【讨论】:

      • 那行不通。我有非常具体的 GUI 测试。这不像我可以一起运行单元测试和那些 GUI 测试。我需要运行单元测试或 GUI 测试。
      • 现在我想起来了,不应该同时运行 2 个 GUI 测试。我有 MSTests 并行运行的想法,所以也许我不应该为此使用 MSTests。
      • 无论哪种方式,如果您通过不应该成为问题的类别来隔离您的测试......
      • 如果我可以同时进行多个测试,点击 GUI 的不同部分,这不是问题吗?
      【解决方案3】:

      如果您运行(“调试”)整个测试项目,它将运行项目中的所有测试。如果您对测试有严格的划分,这很有用。

      否则,您必须使用测试列表(在“测试”菜单中),这对我来说似乎永远无法正常工作。它们似乎有时会被自动覆盖。

      【讨论】:

      • 如果我使用 NUnit 而不是 MSTest,是否更容易做到这一点?
      • 也许;我从未使用过 NUnit。我猜 NUnit 会提供更好的工具。
      猜你喜欢
      • 2011-12-25
      • 2011-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-14
      • 1970-01-01
      • 2022-08-12
      相关资源
      最近更新 更多