MSTest.TestAdapter
与MSTest.TestFramework
之间的区别是什么?我何时需要哪一个?
在NuGet描述中,您可以阅读:
MSTest.TestAdapter
用于发现和执行基于MSTest Framework的测试的适配器。
MSTest.TestFramework
这是MSTest V2,微软测试框架的演变。 +要发现并执行测试,请安装MSTest.TestAdapter。
嗯,不是很有帮助,而且我总是安装两者,因为我不知道应该选择哪一个。奇怪的是,在我的一个测试项目中,我只有MSTest.TestFramework
(我猜不出意料),ReSharper仍然可以发现测试。
我对这些套餐的疑问是:
TestAdapter
?TestFramework
怎么处理?我什么时候需要这个?GitHub上的项目页面也有很大帮助。唯一的链接
您可以阅读有关MSTest V2 here的更多信息。
导航到一个页面,该页面只说明它有多么优秀和开源,但没有任何具体的任何一个包。
答案 0 :(得分:12)
因此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有自己的命令行运行程序,可以在没有测试适配器的情况下运行单元测试项目。
答案 1 :(得分:2)
你真的总是需要安装它们吗?
不。为什么? (见下文)
为什么即使没有TestAdapter也能正常工作?
还有其他适配器/跑步者可以识别MSTest框架,也可以发现并运行MSTest Framework测试。
TestFramework可以做些什么?
因此,通常,测试框架是用于创建/创建测试的,而适配器/运行器发现并执行已发现的测试。
我什么时候需要这个?
有多个框架和适配器/跑步者,您可以使用您选择的那个。
答案 2 :(得分:0)
MsTest.TestFramework包含核心框架,其中包括Attributes和Asserts。 MsTest.TestAdapter允许我们发现基于MsTest的测试并执行它们。例如,识别[TestMethod]归因的方法并执行它们。