如何在VS2012中的现有C#应用程序项目中添加MsTest支持?
我希望能够将单元测试添加到应用程序项目中,并让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
对于使用.csproj文件中的条件引用的发布版本,也可以轻松地排除NUnit支持程序集引用。
(在Visual Studio 6中支持从设计器运行对话框曾经是一个内置功能,但是随着MS进化VS而失去了许多其他有用功能。)
答案 0 :(得分:4)
你将必须创建一个单独的项目,否则你只能在ReSharper中运行它们(resharper几乎会运行你坚持[TestMethod]
的任何东西)。
答案 1 :(得分:4)
不要反对微软设计测试框架的方式 - 你需要创建一个单独的项目。测试项目包含许多您不希望成为应用程序一部分的内容(例如,对Microsoft测试程序集的引用)。
答案 2 :(得分:1)
在VS2017中使用netcoreapp 2.0(但我认为它可以与框架一起使用)将这些程序集从Nuget添加到项目中:
- Microsoft.NET.Test.Sdk
- MSTest.TestAdapter
- MSTest.TestFramework
然后,任何标记为[TestCethod]的标记为[TestClass]的公共类的公共方法都可以在Visual Studio中作为测试运行。