使用Selenium c# web驱动程序与NUnit进行自动化。我正在使用命令行生成诱惑力报告,我的报告创建得非常好,但我需要以下问题的帮助:我有以下结构使用页面对象模型(2个测试和1页)。现在,当我看到报告时,它显示在顶部的测试运行(2个测试套件,2个测试用例),每个测试用例都是一个测试套件。我想说1个测试套件,2个测试用例。我怎么做呢?
namespace ApplicationName.TestCases
{
[TestFixture]
class VerifyCreateOrder
{
IWebDriver driver;
[SetUp]
public void Initialize()
{
driver = new FirefoxDriver();
}
[TestCase]
public void doCreateOrder()
{
LoginPage loginPage = new LoginPage();
//some Assertion
}
}
}
namespace ApplicationName.TestCases
{
[TestFixture]
class SearchOrder
{
IWebDriver driver;
[SetUp]
public void Initialize()
{
driver = new FirefoxDriver();
}
[TestCase]
public void doSearchOrder()
{
LoginPage loginPage = new LoginPage();
//some Assertion
}
}
}
下面是我的LoginPage Page对象:
namespace ApplicationName.Pages
{
class LoginPage
{
public void doLogin(IWebDriver driver, String username, String password)
{
driver.Navigate().GoToUrl("http://www.myxyzsite.com");
driver.FindElement(By.Id("xyz")).SendKeys(username);
driver.FindElement(By.Id("xyz")).SendKeys(password);
driver.FindElement(By.Id("xyz")).Click();
}
}
}
我读了关于NUnit套件属性在http://www.nunit.org/index.php?p=suite&r=2.5.5和创建了一个c#类与所描述的枚举器,但我如何调用它/连接它?我需要为我的测试类做什么更改?
namespace NUnit.Tests
{
public class MyTestSuite
{
[Suite]
public static IEnumerable Suite
{
get
{
ArrayList suite = new ArrayList();
suite.Add(new VerifyCreateOrder());
suite.Add(new SearchOrder());
return suite;
}
}
}
}
我想让它说1个测试套件,2个测试用例。我怎么做呢?
在不添加Suite或类似的情况下,您可以将两个Test
案例放入相同的TestFixture
中,因为这就是testsuite
输出的构建来源。您可以使用分部类来做到这一点,或者您可以简单地合并这两个类。但是,您的Suite
溶液是更好的选择。
我需要为我的测试类做什么更改?
使用选项/fixture:NUnit.Tests.MyTestSuite
调用NUnit。
注意,所有这些都在NUnit 3中改变了,Suite
属性消失了。如果不重新组织你的测试用例,我看不出有什么方法可以在NUnit 3中做你想做的事情。
如果将测试合并到套件中非常重要,则可以使用XSLT。NUnit测试结果模式非常简单,使用XSLT很容易操作。