使用Nunit FrameWork通过多个环境和浏览器运行测试

时间:2017-10-13 12:04:43

标签: c# selenium selenium-webdriver nunit nunit-3.0

我是使用Nunit框架的新手,所以我一直在努力研究如何做到这一点。

基本上,我有3个环境:Dev,Test,Prod 每个环境都有不同的URL,例如:

  • Dev:www.dev.com
  • 测试:www.test.com
  • 产品:www.prod.com

我想针对所有三种环境运行测试用例,并通过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和浏览器循环的实例。非常感谢任何和所有的帮助!

1 个答案:

答案 0 :(得分:0)

三个不同的URL乘以四个浏览器生成十二个不同的夹具实例。您可以通过指定TestFixtureAttribute十二次而不是四次来完成此操作,条目类似于......

C# [TestFixture(typeof(ChromDriver), "www.dev.com")]

但是,您更有可能希望给定的测试运行专注于开发,测试或生产环境。

在这种情况下,将URL作为参数传递给运行。在控制台运行器中,您可以使用--params:siteurl=www.dev.com之类的选项执行此操作。您的测试将使用TestContext.Parameters访问该值。