我创建了具有两个测试方法的TestFixture类。
[TestFixture]
class SomeTests
{
[Test]
public void OpenScreen()
{
//Do something
}
[Test]
public void TestElement()
{
//Do something
}
}
我的要求是根据外部文件的输入来运行这些测试,如下所示:
Test Value
Screen "Scr1"
Element "Ele1"
Element "Ele2"
Screen "Scr2"
Element "Ele3"
我可以使用以下方法将值传递给这些测试方法:
[Test]
[TestCaseSource("GetTestValues")]
public void OpenScreen(string value)
{
//Do something
}
但是我不知道如何按照文件中接收的确切顺序运行这些测试。我该如何实现?
Current order:
OpenScreen("Scr1")
OpenScreen("Scr2")
TestElement("Ele1")
TestElement("Ele2")
TestElement("Ele3")
Expected order:
OpenScreen("Scr1")
TestElement("Ele1")
TestElement("Ele2")
OpenScreen("Scr2")
TestElement("Ele3")
Edit:我正在使用它进行功能测试,以使用Selenium测试某些屏幕。外部文件是包含这些值的Json格式字符串,GetTestValues
只是反序列化Json并返回这些值。
不幸的是,这些测试方法将由NUnit运行程序运行,并且您将无法更改它们的运行顺序。
似乎您正在尝试创建某种验收测试。您可以做的是创建一个测试方法,该方法包装步骤顺序并将OpenScreen
和TestElement
方法保留为简单的辅助方法:
[TestFixture]
class SomeTests
{
[Test]
public void TestInteraction() {
OpenScreen("Scr1")
TestElement("Ele1")
TestElement("Ele2")
OpenScreen("Scr2")
TestElement("Ele3")
}
public void OpenScreen(String arg)
{
//Do something
}
public void TestElement()
{
//Do something
}
}