簡體   English   中英

運行 `dotnet test` 時顯示 `dotnet vstest` output 接收器的 output

[英]When running `dotnet test` show output of the `dotnet vstest` output sink

編輯:以下是最初以標題發布的前一個問題

xunit 在控制台運行時顯示 ITestOutputHelper output

經過調查(見評論),這個問題仍然非常相關,需要一個答案,但它似乎應該針對vstest框架和 output 接收器而不是 xunit。

現在的具體問題是:當將某些內容寫入dotnet vstest output 接收器時,如何從命令行運行dotnet test時顯示它。 具體來說,我希望能夠使用dotnet watch設置一個觀察者來連續運行測試,我更關心 output 而不是結果(我將其用作測試系統,而更多地用作開發筆記本)。 而且我不想局限於visual studio或vscode。

原始問題:

在我的測試 class 我有

    [Fact]
    public void Test() {

       output.WriteLine("WHATEVER");

    }
    readonly ITestOutputHelper output;

    public GroceryTests(ITestOutputHelper output) => this.output = output;

當我通過 vscode 編輯器集成運行它時,我可以在 Output 窗格中看到 output。 當我通過dotnet test運行它時,我沒有。 如何讓這個 output 通過控制台顯示?

只是為了分享對我有用的東西(我不是 vstest sink 的專家,所以可能無法回答更深層次的問題):

我有一個像這樣的簡單測試:

public class UnitTest1
{
    private readonly ITestOutputHelper _output;

    public UnitTest1(ITestOutputHelper output)
    {
        _output = output;
    }

    [Fact]
    public void Test1()
    {
        _output.WriteLine("My message.");
    }
}

因此,如果我在控制台中觀看/運行此測試

dotnet watch test --logger:"console;verbosity=detailed"

我看到 output 喜歡:

  V XUnitTestProject1.UnitTest1.Test1 [5ms]
  Standard Output Messages:
 My message.

我正在使用 .NET 核心 SDK 3.1.201。

@weichch 的答案對我有用,即使沒有任何特定的日志接收器使用。 命令dotnet test -l "console;verbosity=detailed"向我展示了我測試的所有Console.WriteLine s 就好了。 並且不會太雜亂。

請注意,您可以在命令中添加--filter="Name=<MethodName>"以使用該名稱運行測試。

我的測試都有屬性[NonParallelizable]。
使用 dotnet 5

該命令也在github這個答案中提到。

暫無
暫無

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

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