如何使用带有NUnit的Selenium C#两次运行测试项目

时间:2018-09-11 09:34:51

标签: c# visual-studio selenium devops nunit-3.0

我有一个测试项目,该项目使用带有Nunit的硒c#开发。它与构建过程(CI)集成在一起。

根据业务规则,我必须使用两个配置文件测试应用程序 1.管理员 2.代理商

这意味着我必须以Admin角色执行一次所有硒测试,然后以Agent角色再次运行所有这些测试。

class TestCases
{
    string user = string.Empty;
    ChromeDriver d;

    [SetUp]
    public void setup()
    {
        d = new ChromeDriver();
        d.Url = "https://www.example.com/";
        user = d.FindElement(By.Id("Role")).Text; //Admin or Agent
    }


    [Test]
    public void TestCaseID_1()
    {
        if (user.Equals("Admin") || user.Equals("Agent"))
        {
            // code
        }
    }


    [Test]
    public void TestCaseID_2()
    {
        if (user.Equals("Agent"))
        {
            // code
        }
    }

    [Test]
    public void TestCaseID_3()
    {
        if (user.Equals("Admin"))
        {
            //change user role from Admin to Agent
        }
    }

    [TearDown]
    public void tearrdown()
    {
        d.Dispose();
        d.Quit();
    }
}

我正在寻找这样的东西: 1.所有测试应首先以管理员身份运行。 2.在上一次测试中,管理员应将其角色从“管理员”降级为“代理”。 3.现在,再次为代理重新运行所有测试。

当前,我能够以管理员或代理身份测试该应用程序。

我对如何为新的配置文件(代理)重新运行这些脚本感到困惑。请帮我。

感谢您的时间和精力。

1 个答案:

答案 0 :(得分:0)

您可以使用Nunit中可用的“测试用例”属性,请参考此链接here

然后,您的测试方法可以采用userRole作为参数。现在,使用这两个角色的参数,测试方法将运行两次。

[TestCase("Admin")]
[TestCase("Agent")]   
 public void UnitTestName(string userRole)
{
//Arrange

//Act

//Assert
}