簡體   English   中英

如何在執行時輸出XUnit測試涉及的每一行?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM