簡體   English   中英

在mstest的測試過程中從子進程中捕獲stdout

[英]Capturing stdout from a subprocess run during a test in mstest

我正在使用MSTest運行一些測試(在C#中)。 我正在測試的例程之一創建了一個新進程,該進程通常會轉儲一些輸出stdout。 我想在測試中捕獲該輸出。 雖然查看測試是否失敗並不重要,但對弄清測試為什么失敗非常有幫助。 我怎樣才能做到這一點?

一些細節。 不幸的是,我無法觸及創建過程的代碼。 更糟糕的是,它是C ++,並且正在通過C ++ / CLI包裝器進行調用。 如果我創建一個.NET控制台應用程序(使用C#),則要捕獲的子進程的標准輸出在進行調用時確實會出現在控制台應用程序的窗口中。 當我在MSTest上下文中運行相同的代碼時,子過程創建會彈出一個新窗口,並且子過程將其輸出轉儲到該窗口中。 如果可能的話,就是我想要捕獲的輸出。

非常感謝!

如果在測試結果完成后雙擊測試結果,您還將看到一個包含stdout的報告頁面。然后您可以在此處看到將一個流程對象的stdout重定向到另一個流程對象的stdin,如何將子流程stdout重定向並僅對此進行鏡像在測試的標准輸出中(即調用Console.Write())

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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