如何在Jira Xray中展示NUnit多TestCase生成的独立测试用例
我用C# .NET Core 3.0搭配NUnit框架编写API单元测试,执行后会生成Testresult.xml文件,将其导入Jira Xray用来创建测试套件。目前同一个测试方法下包含3个[TestCase],Testresult.xml里能看到所有测试记录,但导入Xray后只生成一个名为LCC_ThermostateMode_FlyCatcher_Positive的测试用例,而且没有对应的TestCase参数信息,应该是因为方法名重复被覆盖了。怎么才能让每个TestCase在Jira Xray中生成独立的测试用例?
代码示例:
#region --ThermostatMode-- //[Category("AllDevices")] [Category("FlyCatcher")] [TestCase("Cool","LCC","FlyCatcher")] [TestCase("Heat","LCC","FlyCatcher")] [TestCase("Off", "LCC","FlyCatcher")] public void LCC_ThermostateMode_FlyCatcher_Positive(string TestCaseID,string deviceType, string deviceName) { UnitTest_ThermostateMode_FlyCatcher.LCC_ThermostateMode_FlyCatcher_Positive(test, extent, TestCaseID, deviceType, deviceName, JsonInputDetail); } #endregion
给每个TestCase设置唯一名称
用NUnit的[TestCase]属性的TestName参数,为每个参数化测试指定唯一名称,这样Xray会识别为不同的测试用例。修改后的代码示例:[TestCase("Cool","LCC","FlyCatcher", TestName = "LCC_ThermostateMode_FlyCatcher_Positive_Cool")] [TestCase("Heat","LCC","FlyCatcher", TestName = "LCC_ThermostateMode_FlyCatcher_Positive_Heat")] [TestCase("Off", "LCC","FlyCatcher", TestName = "LCC_ThermostateMode_FlyCatcher_Positive_Off")]这样生成的Testresult.xml里每个测试会带有唯一名称,Xray导入时就不会覆盖,而是生成独立的测试用例。
确保测试结果XML包含参数信息
检查NUnit的测试结果输出配置,确认参数信息被正确写入Testresult.xml。NUnit默认会记录参数,但如果有自定义配置,要保证<test-case>节点里包含<parameters>子节点——Xray需要这些信息来把参数关联到测试用例上。用TestCaseID关联已有Xray测试用例(可选)
如果你已经在Xray里创建了对应每个TestCase的测试用例,可以把第一个参数设为Xray的测试用例ID(比如TC-123),然后在导入时配置Xray识别这个参数作为测试用例的唯一标识,这样会直接关联到已有用例,而非创建新的。需要在导入设置里指定“测试用例ID字段”对应你传入的TestCaseID参数。
内容的提问来源于stack exchange,提问作者Vivek Sharma

