我正在尝试使用NUnit集成NUnit参数化的跨浏览器测试。我希望测试显示在“测试资源管理器”窗口中,这是使用NUnit3TestAdaptor完成的,但是无法区分不同的测试。这是我班上当前TestFixture属性的一个示例(下面的this示例):
namespace Demo
{
[TestFixture("Chrome", "72", "Windows 10", "", "")]
[TestFixture("safari", "12.0", "iOS", "iPhone 8 Simulator", "portrait")]
public class UNitTests
{
[Test]
public void NUnitTestOne()
{
// Test Stuff
}
[Test]
public void NUnitTestOne()
{
// Test Stuff
}
}
这是测试在“测试资源管理器”中的显示方式:
-> Demo.UNitTests.NUnitTestOne
NUnitTestOne
NUnitTestOne
-> Demo.UNitTests.NUnitTestTwo
NUnitTestTwo
NUnitTestTwo
问题是我无法知道哪个NUnitTestOne
是Chrome测试还是iPhone测试。这就是我希望在测试浏览器中看到的(或类似的东西)
-> NUnitTestOne
Chrome
iPhone
-> NUnitTestTwo
Chrome
iPhone
理想情况下,像这样的东西会很完美:
[TestFixture("Chrome", "72", "Windows 10", "", ""), Name("Chrome")]
[TestFixture("safari", "12.0", "iOS", "iPhone 8 Simulator", "portrait"), Name("iPhone")]
但是我可能只是在做梦。有什么办法可以满足我的需求?谢谢!
编辑:
使用TestName =“ Chrome”时,测试资源管理器会执行以下操作:
NUnitTestOne
NUnitTestOne
NUnitTestTwo
NUnitTestTwo
-> Demo.UNitTests.NUnitTestOne
NUnitTestOne
NUnitTestOne
-> Demo.UNitTests.NUnitTestTwo
NUnitTestTwo
NUnitTestTwo
哪个...很奇怪。
再次编辑:
使用类别,它起作用了!这就是测试浏览器中的内容:
-> Chrome
NUnitTestOne
NUnitTestTwo
-> iPhone
NUnitTestOne
NUnitTestTwo
答案 0 :(得分:1)
您与Name("Chrome")
关系密切。相反,您要在TestFixture
属性中设置的属性是TestName
:
[TestFixture("Chrome", "72", "Windows 10", "", "", TestName = "Chrome")]
[TestFixture("safari", "12.0", "iOS", "iPhone 8 Simulator", "portrait", TestName = "iPhone")]
您可以看到该属性here上所有其他可用的属性。