什么是测试夹具参数的NUnit测试名模板?

问题描述 投票:0回答:1

所以{a}指测试用例参数,但是在测试用例的全名,我们可以看到测试夹具的参数。例如:

C:\DFDeploymentSmokeTests\LocalTestProfiles> $xml = [xml](cat ..\TestResults\CSTests.xml)
C:\DFDeploymentSmokeTests\LocalTestProfiles> $TestCase = $xml.SelectSingleNode('//test-case')
C:\DFDeploymentSmokeTests\LocalTestProfiles> $TestCase.name
SiteCheck
C:\DFDeploymentSmokeTests\LocalTestProfiles> $TestCase.fullname
Web.ForEachWebServer(nan4dfc1app01_10.192.78.221_smoketest.dayforce.com).SiteCheck
C:\DFDeploymentSmokeTests\LocalTestProfiles>

nan4dfc1app01_10.192.78.221_smoketest.dayforce.com是测试夹具参数的ToString()结果和NUnit包括它在一个测试用例的全名。

然而,似乎没有成为一个方式来提供它在--test-name-format命令行参数。

还是我错了,有一种方法?

澄清

我不想改变测试的全名,只是它的名字。我的问题是使用TestFixtureSource夹具下测试的名称。事实上,假设夹具名称是F,其下的测试T1T2和夹具与参数A1A2两次调用。默认的测试名称模式是{m}{a},但{a}不包括固定的参数。因此,测试报告显示了这些测试名(未全名):

T1 
T2 
T1
T2

这是如何显示在Azure中的DevOps测试(公布结果时,发布测试插件使用的测试名称)

我想改名字等于全名,因为全名是:

F(A1).T1
F(A1).T2
F(A2).T1
F(A2).T2

我意识到,如果名称将是F(A1).T1,然后全名是F(A1).F(A1).T1,但由于用户界面不显示的全名,我可以忍受的。

nunit
1个回答
1
投票

测试用例的全名是总是附加到包含类的全名的名称(默认或由您设置)。有没有办法改变这一点。

更新:根据您的澄清,你想测试案例的名称,包括传递给特定的夹具实例的参数。这也是不可能的,使用目前的“静态”的设计。

[使用“静态”,并在此特殊的NUnit-Y方式“动态”。从某种意义上说,所有这一切都是动态的,因为当你执行亚军发生。但是,我们用它来指“预定的测试被装载时(创建,发现),而不是‘在每个测试的执行来确定。’]

当时你的测试被发现(并命名)无固定装置目前尚无实例化。要用于测试夹具的每个实例运行的TestCaseSource方法生成测试名称的代码。我们可以做不同的,但是......好吧,我们并没有因为没有人会想到这个用例的。

抱歉!

PS:有一个长期存在的问题NUnit的要求创建的(我们称之为)“动态”测试案例,这很容易包括你所要求的功能。

© www.soinside.com 2019 - 2024. All rights reserved.