c# - MSTest.TestAdapter 与 MSTest.TestFramework 之间有什么区别,我什么时候需要哪一个?

标签 c# .net unit-testing visual-studio-2017 mstest

MSTest.TestAdapterMSTest.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/

相关文章:

c# - 底层连接已关闭 : Could not establish trust relationship for the SSL/TLS secure channel

java - 如何获取 IBM Websphere Queue 上的消息计数

c# - C# 中的线程

c# - .NET Core 应用程序加载 C++ DLL 失败

javascript - 单元测试返回 TypeError : undefined is not a constructor error message

python - 如何模拟 Python 静态方法和类方法

c# - 类型转换和转换有什么区别?

c# - 如何在C#中随机枚举列表项?

c# - 我的正则表达式做错了什么?

java - 如何编写单元测试以从 Java Set 中检索项目