gpt4 book ai didi

selenium - 如何使用 Selenium 和一个NUnit套件测试多个浏览器并使之保持DRY?

转载 作者:行者123 更新时间:2023-12-04 03:34:32 25 4
gpt4 key购买 nike

我正在寻找一种方法来重用一个NUnit测试套件,而不必为每个浏览器复制整个套件。似乎每个浏览器都需要一个新的固定装置。我可以从NUnit gui发送某种环境变量或配置设置来切换浏览器吗?见下文:

[TestFixture]
public class User
{
private ISelenium selenium;
private StringBuilder verificationErrors;

[SetUp]
public void SetupTest()
{
// TheBrowser = How do I populate this variable from the NUnit gui?
selenium = new DefaultSelenium("localhost", 4444, **TheBrowser**, "http://localhost:52251/");
selenium.Start();
verificationErrors = new StringBuilder();
}

[TearDown]
public void TeardownTest()
{
...
}

[Test]
public void SearchUser()
{
...
}

}

最佳答案

NUnit 2.5+支持通用测试装置,这些通用装置使在多个浏览器中的测试变得非常简单。
http://www.nunit.org/index.php?p=testFixture&r=2.5

构建以下内容将创建两个“GoogleTest” NUnit测试,一个用于Firefox,一个用于IE。

using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium.IE;
using System.Threading;

namespace SeleniumTests
{
[TestFixture(typeof(FirefoxDriver))]
[TestFixture(typeof(InternetExplorerDriver))]
public class TestWithMultipleBrowsers<TWebDriver> where TWebDriver : IWebDriver, new()
{
private IWebDriver driver;

[SetUp]
public void CreateDriver () {
this.driver = new TWebDriver();
}

[Test]
public void GoogleTest() {
driver.Navigate().GoToUrl("http://www.google.com/");
IWebElement query = driver.FindElement(By.Name("q"));
query.SendKeys("Bread" + Keys.Enter);

Thread.Sleep(2000);

Assert.AreEqual("bread - Google Search", driver.Title);
driver.Quit();
}
}
}

关于selenium - 如何使用 Selenium 和一个NUnit套件测试多个浏览器并使之保持DRY?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4822568/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com