在运行XUnit测试的VSTest中将相同的测试方法与多个测试用例相关联时,不执行测试方法

时间:2020-06-21 06:20:04

标签: azure-devops azure-pipelines xunit vstest

我们有一个用xUnit编写的ASP.Net应用程序和UI测试。测试计划是在VSTS中进行的,在某些情况下,相同的xUnit测试方法与多个测试用例相关联。

一个天蓝色的构建管道使用VSTest执行这些测试。问题是,当多个测试用例与单个方法相关联时,似乎仅执行其中一个。例如。下面的屏幕快照中的测试用例与相同的方法相关联,并且仅执行一个。

enter image description here

我们在Vstest中尝试了“测试程序集”和“测试计划”两个选项,但结果相同。

enter image description here

根据下面的链接,xUnit中不可能在同一测试会话中多次运行相同的测试方法。

https://developercommunity.visualstudio.com/content/problem/995269/executing-multiple-test-cases-from-testplan-which.html?childToView=995554#comment-995554

我能想到的一些解决方案是

  1. 为所有测试用例创建虚拟测试方法,并维护一对一的测试方法以测试用例映射。其中一种方法将具有测试逻辑,而其他方法将仅断言为真。
  2. 创建多个测试方法,其中只有一个方法将包含实现。其他方法将只调用包含实现的测试方法。

请建议是否有更好的解决方案。

谢谢!

1 个答案:

答案 0 :(得分:0)

在运行XUnit测试的VSTest中将相同的测试方法与多个测试用例相关联时,不会执行测试方法

我们知道:

默认情况下,每个测试类都是唯一的测试集合。内测 同一测试类不会并行运行。

因此,我们从Azure Devops Developer Community forumxunit获得的响应是​​XUnit不允许在同一会话中多次运行一项测试。

我个人认为您建议的两个工作流程是正确的。您可以使用两种方法之一来解决此问题。您已经走对了路。

希望这会有所帮助。