如何将MSTest单元测试支持添加到C#应用程序

问题描述:

如何将MsTest支持添加到VS2012中的现有C#应用程序项目?如何将MSTest单元测试支持添加到C#应用程序

我希望能够将单元测试添加到应用程序项目中,并让IDE集成在编辑器中显示“点击运行”图标。

我做不是想要创建一个单独的项目。

[EDIT1]

对于那些有兴趣谁,这是十分容易的NUnit的和作品“开箱即用”。如果你有一个很大的WPF应用程序,并希望能够从IDE启动每个UI窗口来预览或调试,而不必运行整个应用程序并导航到你想要查看的窗口,那么这样一个简单的内联测试就可以克服缺乏VS设计师的这个基本功能。

#if DEBUG 
    [TestFixture] 
    public class MainWindowTests 
    { 
     [Test] 
     [STAThread] 
     public void Test1() 
     { 
      Application a = new Application(); 
      MainWindow w = new MainWindow(); 
      a.Run(w); 
     } 
    } 
#endif 

NUnit的支撑组件的参考也可以容易地排除了使用在.csproj的文件有条件参考一个发布版本。 (支持从设计器运行对话框一直以来都是Visual Studio 6中的内置功能,但像许多其他有用功能丢失一样,因为MS演变VS)。

不要反对微软设计测试框架的方式 - 您需要创建一个单独的项目。测试项目包含很多内容(例如,对Microsoft测试程序集的引用),您不希望成为应用程序的一部分。

+0

看起来像我的问题的答案,但我认为我的问题的答案将回到使用NUnit。我希望MS现在让MSTest更有用,他们肯定有足够的时间赶上。 – Neutrino 2013-05-07 14:07:37

必须创建一个单独的项目,否则你只能在ReSharper的运行它们(ReSharper的将几乎运行任何程序上坚持[TestMethod])。

+0

其实你可以在VS2012 IDE中运行这些测试。这里不需要Resharper。 – 2013-11-22 20:02:02

+0

我在想,mstests还可以在单​​个项目的命令行上运行? – AnneTheAgile 2015-05-15 15:50:23

在VS2017使用netcoreapp 2.0(但我相信它会与框架工作)这些集添加到从的NuGet项目: - Microsoft.NET.Test.Sdk - MSTest.TestAdapter - MSTest.TestFramework

然后任何公开的方法标记为[TestMethod的用于标记为任何公共类[TestClass]可以在Visual Studio中作为测试运行。