如何在c#应用程序中添加MSTest单元测试支持?



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

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

I do not想要创建一个单独的项目。

[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

使用.csproj文件中的条件引用也可以很容易地在发布版本中排除NUnit支持程序集引用。

(从设计器中运行对话框的支持曾经是Visual Studio 6的一个内置功能,但像许多其他有用的功能一样,随着MS的发展而失去了)。

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

必须创建一个单独的项目,否则你只能在ReSharper中运行它们(ReSharper几乎可以运行任何你粘贴[TestMethod]的东西)。

在VS2017中使用netcoreapp 2.0(但我认为它将与框架一起工作)将这些程序集从Nuget添加到项目中: - Microsoft.NET.Test.Sdk - MSTest.TestAdapter - MSTest.TestFramework

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

最新更新