实际上MSTest.TestAdapterMSTest.TestFramework之间的区别是什么?我何时需要哪一个?

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

MSTest.TestAdapter



MSTest.TestFramework



好吧,不是很有帮助,我总是安装两者,因为我不确定我应该选哪一个。奇怪的是,在我的一个测试项目中,我只有MSTest.TestFramework(我猜是偶然的),而ReSharper仍然可以发现测试。

我对这些软件包的疑问是:

  • 您真的总是需要同时安装它们吗?
  • 为什么即使没有TestAdapter也可以工作?
  • 我可以使用TestFramework做什么?我什么时候需要这个?


  • GitHub上的项目页面也可以提供很多帮助。唯一的链接



    导航到一个页面,该页面仅说明其功能强大和开源,但对这两个软件包都没有具体说明。

    最佳答案

    因此,Visual Studio使用称为Visual Studio测试平台的框架来加载测试适配器,

    https://github.com/Microsoft/vstest

    为了发现或执行测试用例,VSTest会根据您的项目配置调用测试适配器。 (这就是NUnit/xUnit/MSTest都要求您为单元测试项目安装测试适配器NuGet包的原因)。因此,存在MSTest.TestAdapter即可达到此目的。

    MSTest.TestFramework本身实现了测试框架及其契约(Contract)。因此,您需要为其添加一个NuGet引用,以编写单元测试用例并进行编译。然后,Visual Studio仅可以使用已编译的项目以及测试适配器。

    因此,对您问题的最终答案将是“您通常同时需要两者”。

    如果您不打算使用Visual Studio,则@Nkosi的其他答案当然可能是正确的。 MSTest有自己的命令行运行程序,它可以在没有测试适配器的情况下运行您的单元测试项目。

    关于c# - MSTest.TestAdapter和MSTest.TestFramework之间有什么区别?何时需要哪一个?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47248729/

    10-13 08:34