将Selenium C#网络驱动程序与NUnit配合使用以实现自动化。我正在使用命令行生成Allure报告,我的报告得到了极好的创建,但我需要有关以下问题的帮助: 我使用Page对象模型(2 Test和1 Page)具有以下结构。现在,当我看到它在顶部测试运行时显示的报告(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();
}
}
}
我在http://www.nunit.org/index.php?p=suite&r=2.5.5读到了NUnit套件属性并使用枚举器创建了一个c#类,但我如何调用它/ wire呢?我需要对我的测试类做出哪些更改?
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;
}
}
}
}
答案 0 :(得分:0)
我希望它说1个测试套件,2个测试套件。我该怎么做?
如果不添加套件或类似内容,您可以将Test
个案例放在同一个TestFixture
中,因为testsuite
输出的内容是什么。您可以使用部分类来完成此操作,或者您可以简单地将这两个类混淆。但是,您的Suite
解决方案是更好的选择。
我需要对我的测试类做出哪些更改?
使用选项/fixture:NUnit.Tests.MyTestSuite
调用NUnit。
请注意,NUnit 3的所有内容都已更改,Suite
属性已消失。在重组测试用例之前,我无法在NUnit 3中看到任何你想做的事情。
如果将测试合并到套件中非常重要,可以使用XSLT。 NUnit测试结果模式非常简单,易于使用XSLT进行操作。