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

时间:2010-12-29 09:58:57

标签: unit-testing mstest

我从未做过有序测试,因为我认为这不是一个好习惯。 在我工作的地方,我被告知要去做,所以让我们抛弃一下好的或坏的做法。

我是msTests的新手,所以你能在这里帮助我。

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

  1. 我创建了一个Basic测试类并添加了所有10个测试。
  2. 我创建了一个Ordered测试,并按照我想要执行的顺序向右移动。很好。
  3. 运行测试,但MsTest运行两次测试。一旦订购的测试全部成功!但是也没有特别的顺序运行相同的测试
  4. 我是否错过了显而易见的情况,如果我有一组测试,那些不应被删除,因为正常的测试只能作为有序测试运行。

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

    有什么建议吗?

4 个答案:

答案 0 :(得分:2)

我也很挣这个,但后来在MSDN上找到了以下文档: Ordered Test Overview

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

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

答案 1 :(得分:1)

在VSTS中,无论何时创建有序测试,它实际上都会为该测试创建一个单独的文件。因此,在执行时,您只需执行该有序测试文件。它将包括特定顺序的所有测试&在执行期间,它将仅按照它运行。

答案 2 :(得分:0)

这是一个很受欢迎的问题(虽然我同意,这是非常糟糕的做法)。看看这个问题:

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

我自己没有这样做,所以无法保证上述问题中的任何答案都有效,但值得一试。

答案 3 :(得分:0)

这可能是一个很难回答的问题,但在Google上搜索时,这个问题确实出现在第一页上。我认为你要找的是一个播放列表。创建一个新的测试播放列表,然后只添加您想要运行的测试。