使用MSTest Framework测试面向.NET Standard 1.6及更高版本的应用程序

时间:2017-01-19 18:16:41

标签: .net unit-testing mstest .net-core .net-standard

我将my project从.NETFramework 4.5.1迁移到.NET Standard 1.6

该项目正在使用MSTest框架,我现在想保持这种方式并避免在另一个框架(XUnit,NUnit等)中重写测试

目前只有MSTest framework support was announced for .NET Coredotnet-test-mstest 1.1.2-preview package available on NuGet很自然地不支持.NET Standard,所以我的测试项目不能以.NET Standard为目标

但是,根据compatibility matrix,.NET Standard 1.6与.NET Core 1.0兼容 所以我的测试程序集针对的是.NET Core 1.0,并引用了面向.NET Standard 1.6的我的测试系统 - 它运行得很好。

问题是 - 这是一个很好的决定吗?

我没有找到任何MSTest的路线图,我想知道当我迁移到.NET Standard 2.0时这个技巧是否仍然可行? 我是否应该将我的测试框架更改为其他具有更多最新支持的框架,例如XUnit?

即使是微软documentation points to XUnit,他们还在放弃MSTest吗?

请注意这个is not a duplicate,因为我的问题是关于未来的前景,而不仅仅是当前的事态。

1 个答案:

答案 0 :(得分:6)

<强>&GT;&GT;该项目正在使用MSTest框架,我现在想保持这种方式并避免在另一个框架(XUnit,NUnit或te)中重写测试

听起来很合理。

<强>&GT;&GT;我的测试项目不能以.NET Standard为目标

你可以。

请参阅此帖子以供参考:https://blogs.msdn.microsoft.com/visualstudioalm/2016/11/29/evolving-the-test-platform-part-3-net-core-convergence-and-cross-plat/ 请注意,您不再需要dotnet-test-mstest软件包。请改用MSTest.TestAdapter。

<强>&GT;&GT;甚至Microsoft文档都指向XUnit

在这种情况下,是的。但是,还有其他项目也大量使用MSTest。

我们在MSTest测试框架和VS Test平台上工作。作为一个测试平台,我们采取多元化的方法,并希望将测试框架的选择留给开发人员(而不是支持任何一个框架)。您可以在此处详细了解此方法:https://blogs.msdn.microsoft.com/visualstudioalm/2016/07/25/evolving-the-visual-studio-test-platform-part-1/

<强>&GT;&GT;他们放弃了MSTest吗?

完全没有。

请参见此处:https://blogs.msdn.microsoft.com/bharry/2017/01/20/open-sourcing-the-vs-test-platform/,并在此处:https://visualstudio.uservoice.com/forums/121579-visual-studio-ide/suggestions/13399980-make-ms-test-framework-opensouce了解前方的道路。我们将很快宣布更多 - 特别是在路线图方面。

<强>&GT;&GT;问题是 - 这是一个很好的决定吗?

是(基于以上所有内容)。