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

如何向C#应用程序添加MSTest单元测试支持,c#,unit-testing,visual-studio-2012,mstest,C#,Unit Testing,Visual Studio 2012,Mstest,如何在VS2012中向现有的C#应用程序项目添加MsTest支持 我希望能够将单元测试添加到应用程序项目中,并让IDE集成在编辑器中显示“单击运行”图标 我不想创建一个单独的项目 [第1版] 对于那些感兴趣的人来说,这在NUnit中非常简单,而且“开箱即用”。如果您有一个大型WPF应用程序,并且希望能够从IDE启动每个UI窗口进行预览或调试,而不必运行整个应用程序并导航到要查看的窗口,那么像这样的简单内联测试可以克服VS designer中缺少这一基本功能的缺点 #if DEBUG [T

如何在VS2012中向现有的C#应用程序项目添加MsTest支持

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

我不想创建一个单独的项目

[第1版]

对于那些感兴趣的人来说,这在NUnit中非常简单,而且“开箱即用”。如果您有一个大型WPF应用程序,并且希望能够从IDE启动每个UI窗口进行预览或调试,而不必运行整个应用程序并导航到要查看的窗口,那么像这样的简单内联测试可以克服VS designer中缺少这一基本功能的缺点

#if DEBUG
    [TestFixture]
    public class MainWindowTests
    {
        [Test]
        [STAThread]
        public void Test1()
        {
            Application a = new Application();
            MainWindow w = new MainWindow();
            a.Run(w);
        }
    }
#endif
对于使用.csproj文件中的条件引用的发布版本,也可以很容易地排除NUnit支持程序集引用


(在Visual Studio 6中,对运行设计器对话框的支持一直是一项内置功能,但与MS Evolution VS中的许多其他有用功能一样,它已经丢失了)。

您必须创建一个单独的项目,否则您只能在ReSharper中运行它们(ReSharper几乎可以运行任何您坚持的
[TestMethod]
on)。

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

在VS2017中使用netcoreapp 2.0(但我认为它将与框架一起工作)从Nuget向项目添加这些程序集:

-Microsoft.NET.Test.Sdk
-MSTest.TestAdapter
-MSTest.TestFramework


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

看起来像是我问题的答案,尽管我认为我的问题的答案将是回到使用NUnit。我希望MS现在已经使MSTest变得更有用了,他们肯定有足够的时间赶上。实际上,你可以在VS2012 IDE中运行这些测试。这里不需要重新harper。我在想mstests是否仍然可以在单个项目的命令行上运行?