我正在尝试使用 NUnit 集成 NUnit 参数化跨浏览器测试。我希望测试出现在我使用 NUnit3TestAdaptor 完成的测试资源管理器窗口中,但我无法区分不同的测试。这是我班级当前 TestFixture 属性的一个示例(遵循此示例):
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