對於一個項目,我需要知道在單元測試結束時調用了多少個方法。 (或者類似於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