MSTest.TestAdapter与MSTest.TestFramework有什么区别?我什么时候需要哪一个?

t3c*_*b0t 17 .net c# unit-testing mstest visual-studio-2017

究竟什么是MSTest.TestAdaptervs MSTest.TestFramework和我何时需要哪一个?

在NuGet描述中,您可以阅读:

MSTest.TestAdapter

用于发现和执行基于MSTest Framework的测试的适配器.

MSTest.TestFramework

这是MSTest V2,微软测试框架的演变.+要发现并执行测试,请安装MSTest.TestAdapter.


嗯,不是很有帮助,我总是安装两个,因为我不知道应该采取哪一个.奇怪的是,在我的一个测试项目中,我只有MSTest.TestFramework(我猜不出意料)并且ReSharper仍然可以发现测试.

我对这些包的问题是:

  • 你真的总是需要安装它们吗?
  • 为什么即使没有TestAdapter
  • 我该TestFramework怎么办?我什么时候需要这个?

GitHub上的项目页面也有很大帮助.唯一的环节

您可以在此处阅读有关MSTest V2的更多信息.

导航到一个页面,该页面仅说明它有多么伟大和开源,但没有任何具体的任何一个包.

Lex*_* Li 14

所以Visual Studio使用一个名为Visual Studio Test Platform的框架来加载测试适配器,

https://github.com/Microsoft/vstest

要发现或执行测试用例,VSTest将根据您的项目配置调用测试适配器.(这就是为什么NUnit/xUnit/MSTest都要求您将测试适配器NuGet包安装到您的单元测试项目中).所以MSTest.TestAdapter就是出于此目的而存在的.

MSTest.TestFramework本身实现了测试框架及其合同.所以你需要添加一个NuGet引用来编写单元测试用例并编译它们.Visual Studio随后只能使用已编译的项目和测试适配器.

所以你的问题的最终答案是"你通常需要两者".

如果你不打算使用Visual Studio,@ Nkosi的另一个答案当然是正确的.MSTest有自己的命令行运行程序,可以在没有测试适配器的情况下运行单元测试项目.


Nko*_*osi 6

您真的总是需要安装它们吗?

没有为什么?(见下文)

为什么即使没有 TestAdapter 也能工作?

还有其他适配器/运行器可以识别 MSTest 框架,也可以发现和运行 MSTest 框架测试。

我可以使用测试框架做什么?

因此,一般来说,测试框架是用于在适配器/运行器发现和执行发现的测试时创建/编写测试的框架。

我什么时候需要这个?

有多种框架和适配器/运行器,您可以使用您选择的一种。


小智 5

MsTest.TestFramework 包含核心框架,其中包括属性和断言。MsTest.TestAdapter 允许我们发现基于 MsTest 的测试并执行它们。例如,识别具有 [TestMethod] 属性的方法并执行它们。