[英]How can I output every line an XUnit test touches upon execution?
我有一個應用程序,可以在執行Xunit測試用例時逐步調試。 我想記錄它碰到的每一行,這樣我就可以在一個較長的頁面中讀取整個流程(就像源代碼的日志文件一樣)。
如何將執行輸出到日志文件?
出於好奇,我可以看到一些遺留代碼的流程,以找出重寫所需的邏輯。 當然,需求,用例等並沒有得到維護,因此這是我將其從唯一的真實源中拉出來的策略:當前的生產代碼。
method1(var a)
{
print(" test " + a);
method2(a * 2);
}
method2(var b)
{
if (b > 10)
{
print("b too big");
}
else
{
print("b is " + b);
}
}
測試用例執行method1(2);
所以輸出將是這樣的:
class1.method1(2).print(" test " + a);
class1.method1(2).method2(a * 2);
class1.method2(4).if (b > 10)
class1.method2(4).else
class1.method2(4).print("b is " + b);
是否可以獲取此日志? 如果是這樣,有人知道該怎么做嗎?
提前致謝!
這不是一件容易的事,您需要通過代碼將自定義調試器附加到正在運行的進程中,或者在附加了調試器的情況下啟動新進程。
逐步執行每一行(以使它在每條語句后都中斷,讀取您當前的堆棧位置,然后輸出該行當前所在的行。可能需要映射並使用.pdb文件和源代碼。
通常,這是一項非常艱巨的任務!
通常,您可以使用我的Runtime Flow工具來記錄所有帶有參數的執行方法。 我沒有在XUnit測試中嘗試過它,但是可能可以配置用於監視的自定義運行設置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.