2017-10-13 136 views
0

我是新使用Nunit框架,所以我一直在努力研究如何做到这一点。运行测试通过多个环境和浏览器与Nunit框架

基本上,我有3个环境:开发,测试,PROD 每个环境具有不同的URL,例如:

  • 开发:www.dev.com
  • 测试:www.test.com
  • PROD:www.prod.com

我想在其上运行的所有三种环境的测试案例,以及通过浏览器环路为Chrome,火狐,IE和边缘运行它们。

我已经制定了这样的电流通过代码每个浏览器来运行所有测试:(?)

[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

三个不同的URL乘四个浏览器会产生十二个不同的灯具实例。你可以通过指定TestFixtureAttribute十二倍,而不是四个,与像条目...

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

更可能的,但是,你会希望有一个给定的试运行将重点放在无论是开发,测试或督促环境。

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

相关问题