3

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

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

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

[编辑1]

对于那些感兴趣的人来说,这在 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 的演变 VS 丢失了)。

4

3 回答 3

4

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

于 2013-05-07T09:10:47.870 回答
4

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

于 2013-05-07T09:18:20.073 回答
1

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

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

于 2017-09-20T12:52:42.530 回答