MSTest.TestAdapter
与 MSTest.TestFramework
之间的实际区别是什么?我什么时候需要哪个?
在 NuGet 描述中,您可以阅读:
MSTest.TestAdapter
The adapter to discover and execute MSTest Framework based tests.
MSTest.TestFramework
This is MSTest V2, the evolution of Microsoft's Test Framework. + To discover and execute tests install MSTest.TestAdapter.
嗯,不是很有帮助,我总是安装这两个,因为我永远不确定我应该选择哪一个。奇怪的是,在我的一个测试项目中,我只有 MSTest.TestFramework
(我猜是偶然的)并且 ReSharper 仍然可以发现测试。
我对这些包的问题是:
- 您真的总是需要同时安装它们吗?
- 为什么即使没有
TestAdapter
也能正常工作? - 我可以用
TestFramework
做什么?我什么时候需要这个?
GitHub 上的项目页面也没有多大帮助。唯一的链接
You can read more about MSTest V2 here.
导航到一个页面,该页面仅说明它有多棒和开源,但没有具体说明这两个包。
最佳答案
因此 Visual Studio 使用称为 Visual Studio 测试平台的框架来加载测试适配器,
https://github.com/Microsoft/vstest
为了发现或执行测试用例,VSTest 会根据您的项目配置调用测试适配器。 (这就是为什么 NUnit/xUnit/MSTest 都要求您将测试适配器 NuGet 包安装到您的单元测试项目中)。因此 MSTest.TestAdapter 的存在就是为了这个目的。
MSTest.TestFramework 本身实现了测试框架及其契约。因此,您需要添加它的 NuGet 引用才能编写单元测试用例并进行编译。 Visual Studio 只能使用已编译的项目和测试适配器。
因此,您问题的最终答案是“您通常两者都需要”。
如果您不打算使用 Visual Studio,@Nkosi 的另一个答案当然是正确的。 MSTest 有自己的命令行运行器,它可以在没有测试适配器的情况下运行您的单元测试项目。
关于c# - MSTest.TestAdapter 与 MSTest.TestFramework 之间有什么区别,我什么时候需要哪一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47248729/