![](/img/trans.png)
[英]Why does dotnet vstest return "No test is available in" when the test works in vstest.console.exe?
[英]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.