我当前正在使用C#,nunit
和Selenium构建一个自动化项目,并且我试图拥有一个安装类,该类将在运行任何TestFixture
之前以及它们都结束并尝试获取后初始化selenium webdriver。每个TestFixture
TestFixture
属性中OneTimeSetUp
的webdriver是否可以完成,还是应该将selenium类更改为static,以便能够在每个TestFixture
设置中获取驱动程序字段?
所以基本结构是这样的:
[SetUpFixture]
public class Test
{
[OneTimeSetUp]
public void Init()
{
_driver = new Driver();
}
}
[TestFixture]
public class FirstTest
{
[OneTimeSetUp]
public void Init()
{
xxxxxxxxxx - here I need to initialize a class with the driver from the setup class
}
}
最佳答案
就目前情况而言,NUnit为您执行此操作的唯一方法是使用静态方法。但是,如果您要并行测试多个驱动程序,这将无法正常工作。
真正的解决方案(需要新的NUnit功能)是允许安装程序夹具将信息保存在TestContext中,然后您的个人夹具就可以访问信息。
一种解决方法是在夹具onetimesetup中创建一个新驱动程序,但前提是尚未创建该驱动程序。这也将需要一个静态变量,但是您可以对其进行设置,以使所支持的每种驱动程序类型都有一个单独的静态变量。