我正在尝试使用“ dotnet test”命令获取测试的全限定名称,但命令输出仅显示测试名称(方法名称)。
我也想知道每个测试的类别列表
我有一个包含多个名称空间的库,我想进行一个发现步骤,在该步骤中,我需要收集所有测试名称和每个测试的类别。
如果您有一个包含2个测试的库,则在运行命令
时,它们分别是:testNamespace1.Test1和testNamespace2.Test1。> dotnet test -t myLibrary.dll
Test run for myLibrary.dll(.NETCoreApp,Version=v2.2)
Microsoft (R) Test Execution Command Line Tool Version 15.9.0
Copyright (c) Microsoft Corporation. All rights reserved.
The following Tests are available:
Test1
Test1
因此,我们没有名称空间,并且无法区分这两个测试。
此外,我无法提供每个测试属性/类别。
我想要类似的东西:
...
The following Tests are available:
testNamespace1.Test1
testNamespace2.Test1
关于类别信息,可以使用某种选项将此信息导出到xml / json文件。
那么,可以通过“ dotnet test”命令获得此信息吗?
答案 0 :(得分:0)
我正在尝试一切来使其正常工作,但我认为目前尚不可能。我什至尝试了这个runsettings参数:
DisplayName
Test Explorer DisplayName的默认设置是使用测试的名称,通常是方法名称。使用DisplayName可以在Name,FullName或FullNameSep之间切换。然后,最后一个将使用FullNameSeparator,默认为':'。
https://docs.nunit.org/articles/vs-test-adapter/Tips-And-Tricks.html#displayname
但是,这似乎并不能解决问题。我不知道“测试资源管理器”是什么,但是显然,它不适用于dotnet核心测试适配器。
$ dotnet test -t -- NUnit.DisplayName=FullName
Test run for C:\Users\anthony\...\MyTestLibrary.dll(.NETCoreApp,Version=v3.1)
Microsoft (R) Test Execution Command Line Tool Version 16.6.0
Copyright (c) Microsoft Corporation. All rights reserved.
The following Tests are available:
Test1
Test1
Test1
答案 1 :(得分:0)
您可以使用.runsettings
文件来定义NUnit节,在其中指定使用的DisplayName
格式。
<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
<NUnit>
<DisplayName>FullNameSep</DisplayName>
</NUnit>
</RunSettings>
您可以通过致电使用
dotnet test -t MyTestLibrary.dll --settings test.runsettings