我需要一个好的做法来处理我的问题。
问题是:我需要对网站运行自动测试。该网站具有完全改变其设计的不同配置(在某些页面上)。例如,我可以配置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但首先它是不可能的,其次它不会解决问题,因为这个功能将只是运行两次,测试将针对最后一次配置运行。
那么大家,如何处理有大量配置的网站测试?
答案 0 :(得分:1)
我将使用命令行中的测试运行参数(如果使用VS适配器,则使用.runsettings文件中)。您的SetUpFixture可以获取该参数并进行初始化,并且任何需要它的单个灯具都可以抓取它也是。
请参阅nunit3-console的--params选项和访问值的TestContext.TestParameters属性。
这回答了你的“首先不可能”的部分。我没有回答“第二个......”因为我不明白。如果你能澄清,我会加上更多。