我是使用Nunit框架的新手,所以我一直在努力研究如何做到这一点。
基本上,我有3个环境:Dev,Test,Prod 每个环境都有不同的URL,例如:
我想针对所有三种环境运行测试用例,并通过Chrome,FireFox,IE和Edge的浏览器循环运行它们。
我有这样的当前代码,通过每个浏览器运行所有测试:
[TestFixture(typeof(ChromeDriver))]
[TestFixture(typeof(InternetExplorerDriver))]
[TestFixture(typeof(FirefoxDriver))]
[TestFixture(typeof(EdgeDriver))]
class IntegrationTests
{
Test.RunAll();
}
[TestFixture(typeof(ChromeDriver))]
[TestFixture(typeof(InternetExplorerDriver))]
[TestFixture(typeof(FirefoxDriver))]
[TestFixture(typeof(EdgeDriver))]
class SmokeTests
{
Test.RunAll();
}
根据我的理解,你可能(?)能够再次重载TestFixtures但我似乎无法找到任何语法。我似乎也找不到有人使用多个URL和浏览器循环的实例。非常感谢任何和所有的帮助!
答案 0 :(得分:0)
三个不同的URL乘以四个浏览器生成十二个不同的夹具实例。您可以通过指定TestFixtureAttribute
十二次而不是四次来完成此操作,条目类似于......
C#
[TestFixture(typeof(ChromDriver), "www.dev.com")]
但是,您更有可能希望给定的测试运行专注于开发,测试或生产环境。
在这种情况下,将URL作为参数传递给运行。在控制台运行器中,您可以使用--params:siteurl=www.dev.com
之类的选项执行此操作。您的测试将使用TestContext.Parameters
访问该值。