我需要一个很好的做法来处理我的问题。如何在运行自动化测试之前配置环境?
问题是:我需要对站点运行自动测试。该网站有不同的配置,完全改变了它的设计(在一些页面上)。例如,我可以配置2个不同的登录页面。我需要对它们进行测试。
首先我必须确保正确的测试是针对正确的配置运行的。所以在每次测试之前,我需要更改网站的配置。如果我有一千次测试是不好的。
因此我想到的一个解决方案是每次都不重新配置站点,而是只做一次,并运行与此配置对应的所有测试。但是这个解决方案在我看来并不容易。
现在我所做的是:我创建了一个方法,在所有其他测试之前运行一次,在此方法中,我配置站点以在大多数测试中使用配置。所有其他测试现在在执行之前更改配置,并在执行之后将其更改回来。这根本不好。
要做到这一点我用NUnit3 SetUpFixture和OneTimeSetUp属性:
/// <summary>
/// Runs once before all the test in order to config the environment
/// </summary>
[SetUpFixture]
public class ConfigTests
{
[OneTimeSetUp]
public void RunBeforeAnyTests()
{
IWebDriver driver = new ChromeDriver();
try
{
//Here I config the stie
CommonActions actions = new CommonActions(driver);
actions.SwitchOffCombinedPaymentPage();
driver.Dispose();
}
catch (Exception)
{
driver.Dispose();
}
}
}
我在这之后还以为是什么,我就可以将参数发送到SetUpFixture但首先它是不可能的,其次,它不会解决问题,因为此功能只会运行两次,测试将针对最后一次配置运行。
所以,伙计们,如何处理一个网站测试,有很多配置?