我的设置是这样的:
我正在为visual studio编写一个测试适配器,它调用一个控制台应用程序,它加载一个测试程序集并执行测试方法。
跑步者工作正常,但现在我需要能够进行调试测试。
我的跑步者和测试组装都在同一个位置有.pdb
。
在调试模式下启动测试时,我能够看到符号已加载。
所以,这里有一些我最喜欢的代码:
//load the test assembly
var assembly = Assembly.LoadFrom("path\to\testassembly")
//not actual code, but it is representative
var method = assembly.GetTypes().SelectMany(type => type.GetMethods()).Where(info => info.Name=="foo");
//Create type instance
var instance = Activator.CreateInstance(method.DeclaringType);
method.Invoke(instance, args)
有了这个,当我在方法foo
中放置断点时,Visual studio指示已加载符号,并且断点处于活动状态。但它从来没有打过它。
为了验证方法是否被调用,我放了一些Console.Writeline
,它确实触及了方法。
有关如何使其达到断点的任何提示?
答案 0 :(得分:1)
在这一行放置断点
method.Invoke(instance, args)
点击,按F11