【问题标题】:How can I make a set of tests only run as ordered tests?如何使一组测试仅作为有序测试运行?
【发布时间】:2011-05-31 23:41:39
【问题描述】:

我从来没有做过有序的测试,因为我相信这不是一个好习惯。 在我工作的地方,我被告知要去做,所以让我们抛开什么是好的或坏的做法。

我是 msTests 的新手,所以你能帮帮我吗?

我有 10 个测试,必须按特定顺序运行,否则其中一些会失败。

  1. 我创建了一个 Basic 测试类并添加了所有 10 个测试。
  2. 我创建了一个 Ordered 测试,并按照我想要执行它们的顺序向右移动。一切正常。
  3. 运行测试,但 MsTest 运行测试两次。一旦有序测试全部成功!但也可以不按特定顺序运行相同的测试

如果我有一组按顺序排列的测试不应该被删除,因为正常测试只能作为有序测试运行,我是否错过了显而易见的事情。

如何使一组测试仅作为有序测试运行?

有什么建议吗?

【问题讨论】:

  • 我得到了同样的行为。你找到解决方案了吗?
  • 在我看来应该只有另一个属性 [OrderedTestMethod] 可以使其可用于有序测试选择器,但不能在有序测试之外运行。

标签: unit-testing mstest


【解决方案1】:

这可能是一个老话题,但在 Google 上搜索时,这个问题确实会出现在首页上。我认为您正在寻找的是播放列表。创建一个新的测试播放列表,然后只添加您想要运行的测试。

【讨论】:

    【解决方案2】:

    在 VSTS 中,每当您创建有序测试时,它实际上都会为该测试创建一个单独的文件。因此,在执行时,您只需要执行该排序的测试文件。它将按特定顺序包含所有测试,并且在执行期间它将仅按照它运行。

    【讨论】:

    • 这就是问题所在。我找不到仅在该文件中执行测试的方法。如果我在解决方案资源管理器中选择该文件并点击“在当前配置中运行测试”,我的所有测试都会运行,包括已订购的测试文件中的测试。
    • 当您在 VSTS 中添加任何有序测试时,然后在测试视图中查找测试并选择它。在测试视图资源管理器的左上方,您将看到运行选项。单击运行选择。它只会运行选定的测试。
    【解决方案3】:

    我也为此苦苦挣扎,但后来我在 MSDN 上找到了以下文档: Ordered Test Overview

    显然,您没有在测试视图中以正确的顺序获得测试列表。 相反,有序测试显示为单个测试。

    对我来说这不是一个好消息,因为当我选择“在解决方案中运行所有测试”时,我的测试将运行两次(如果以错误的顺序运行第二次失败),但至少我得到了一个解释为什么会这样。

    【讨论】:

      【解决方案4】:

      这是一个流行的问题(虽然我同意,但这是非常糟糕的做法)。看看这个 SO 问题:

      How Does MSTEST/Visual Studio 2008 Team Test Decide Test Method Execution Order?

      我自己没有这样做,因此不能保证上述问题中的任何答案都有效,但值得一试。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-06-13
        • 2014-10-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-07-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多