对于一个项目,我需要知道在单元测试结束时调用了多少个方法。 (或者类似于Visual Studio中的调用层次结构(不是在运行时),我已经为此创建了一个测试项目,但是我只获取在单元测试项目中调用的方法返回的结果。从单元测试中引用项目的C#StackTrace
因此,例如I有一个类库与下面的类(组装):
public class Program
{
public void A()
{
B();
C();
}
public void B()
{
}
public void C()
{
B();
D();
}
public void D()
{
}
}
而且一个单元测试(组装)用以下试验方法
[TestMethod]
public void TestMethod1()
{
StackTrace stackTrace = new StackTrace();
new Program().A();
int count = stackTrace.FrameCount;
}
[TestMethod]
public void TestMethod2()
{
StackTrace stackTrace = new StackTrace();
new Program().C();
int count = stackTrace.FrameCount;
}
在这两个单元测试计数= 12。当余检查stackTrace变量的属性我只能看到称为单元测试程序集的方法。有没有办法将类库程序集的调用包含在stackTrace中?
在此先感谢
构建一个堆栈跟踪对象将获得构建它的代码的堆栈跟踪,它不会收集跟踪它的代码的堆栈跟踪。这意味着在您的测试方法中,您将获得堆栈跟踪,以便在每个测试方法的第一行中构建堆栈跟踪对象,其余方法不会影响此堆栈跟踪。 – 2013-03-24 12:42:53
但是,当我将StackTrace的构造放置到testmethod的结尾时,结果仍然是一样的... – mrtentje 2013-03-24 14:04:57
是的,因为它仍然只计算对**中**方法的调用。 – 2013-03-24 17:12:19