【发布时间】:2016-09-20 19:42:08
【问题描述】:
当我尝试为我的应用创建单元测试时,仅在公共类或公共方法中支持创建单元测试。我试图在 Visual Studio 2015 Enterprise 的一个非常简单的应用程序中测试公共方法。这是截图。
这是 Program.cs:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace Scratch
{
public class Program //Originally this was just class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello world!");
}
public static string TruncateOld(string value, int length)
{
string result = value;
if (value != null) // Skip empty string check for elucidation
{
result = value.Substring(0, Math.Min(value.Length, length));
}
return result;
}
public static string Truncate(string value, int length)
{
return value?.Substring(0, Math.Min(value.Length, length));
}
}
}
我找到了这个msdn article,但它并没有真正提供任何关于如何解决问题的建议。此外,我从未安装过“ALM Rangers Generate Unit Test”。
我从我的 Program.cs 中删除了除 Main 之外的所有内容,并使用以下代码添加了一个新的 Public Class1(我仍然收到错误并且菜单消失了):
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Scratch
{
public class Class1
{
public Class1()
{
}
public string TruncateOld(string value, int length)
{
string result = value;
if (value != null) // Skip empty string check for elucidation
{
result = value.Substring(0, Math.Min(value.Length, length));
}
return result;
}
public string Truncate(string value, int length)
{
return value?.Substring(0, Math.Min(value.Length, length));
}
}
}
【问题讨论】:
-
重新打开解决方案是否有效?它应该根据social.msdn.microsoft.com/Forums/vstudio/en-US/… 带回菜单项。 (请参阅 Pratap Lakshman 的回复 [MSFT 于 2015 年 8 月 27 日星期四上午 7:47)
-
它确实把它带回来了,直到我下次尝试添加单元测试,然后它又消失了。
-
如果其他人可以复制此内容,我会很感兴趣。很难相信在这样一个微不足道的程序中添加单元测试是不可能的。我可以压缩整个解决方案并将其放在某个地方。我所做的只是创建一个新的控制台应用程序,向 UnitTestFramework 添加一个引用,添加 Program.cs 的附加代码,然后尝试添加一个单元测试。
-
我会在那个论坛上发布这个。那里有更多的 MS 官员。可能是一个错误。
-
我刚刚在我的机器上测试了它。我没有这个问题。我也有企业版。
标签: c# visual-studio unit-testing visual-studio-2015