我正在尝试在Visual Studio 2008中调试我的一些单元测试,并注意到断点似乎没有停止执行。
我认为它就像设置断点然后在当前上下文中执行“测试|调试|测试”一样简单......但是这实际上并没有真正达到我设置的断点。
我做错了什么还是刚刚坏了?
谢谢, 布兰登
答案 0 :(得分:2)
我遇到了同样的问题,直到我首先手动连接到aspnet_wp.exe进程,然后单击Debug Tests按钮。然后我的断点终于被击中了。
答案 1 :(得分:1)
在我的情况下System.Diagnostics.Debugger.Break()
不会停止测试方法。
[TestClass]
public class ContactListTest
{
#region "Constants"
public const string COVERAGE = "CoverageService";
public const string CompanyList = "CompanyList";
public const string ContactList = "ContactList";
#endregion
[TestMethod]
public void GetContactListTest()
{
System.Diagnostics.Debugger.Break();
var ex = new ServiceFilterExpression(COVERAGE);
ex.Expression = new OpBeginsWith("Type", ContactList);
var result = ex.FetchData();
}
}
答案 2 :(得分:0)
检查以下内容:
[TestClass]
和[TestMethod]
?答案 3 :(得分:0)
如果您使用nUnit,则必须执行以下操作
使用您要测试的DLL启动Nunit。 然后在Visual Studio中转到 工具 - >附加到流程
选择您的nunit进程并单击“Attach”,然后它将在所有断点处暂停
玩得开心: - )
答案 4 :(得分:0)
VS2010,VS2008和VS2005中MSTEST的官方Microsoft workaround/kludge/zomg-I-can't-believe-they-can't-be-arsed-to-provide-this-after-4-years是将System.Diagnostics.Debugger.Break()
添加到您要开始调试的单元测试中。这适用于所有带有单元测试项目引用的调试符号的项目。
.NET运行时将提示您转储到调试模式(或关闭执行单元测试程序,或忽略调试行),并且(有时)允许您使用启动单元测试的visual studio实例来执行所以。您始终可以从新的VS实例进行调试。一旦你点击System.Diagnostics.Debugger.Break()
行,所有其他断点将被激活并命中(假设它们在执行堆栈中)。