如何在TestFixture / TestClass C#硒单元测试上使用Excel数据源

时间:2019-07-05 08:57:06

标签: c# selenium testing nunit

我目前是一家保险公司的质量检查实习生,并且正在该公司的网站上进行一些测试。我已经做过很多案例,现在他们正在要求我努力的数据驱动测试。

我已经按照所有条件进行了测试;
1个TestFixture
对测试用例中的每个页面进行测试。

喜欢这个

[TestFixture]
public class Test : BaseClassForTheTest
{
    [Test, Order(1)]
    TestcodeForHomePage

    [Test,Order(2)]
    testcodeForNextPage

}

因此,我需要对excel文件中的许多数据进行全面测试。您可能已经注意到,我正在使用NUnit。
真正的问题是,如何将数据表传递到TestFixture中,并为该数据表运行测试块。

在运行时,第一个测试块将针对数据表中名为MyTable的第一行和第二个测试块将在数据表中名为SecondTable的第一行中运行。由于这些测试是由上一个测试块触发的,因此我无法将数据源提供给这些测试块。

我已经上网查询了,但是找不到将数据表传递到TestFixture的任何信息。在此先感谢人们:)

1 个答案:

答案 0 :(得分:0)

NUnit没有内置任何内容来读取Excel文件。但是您可以使用TestCaseSourceTestFixtureSource从任意位置生成数据。

您的源将必须是一个方法,然后该方法将读取excel文件并返回适当的参数。

以下是使用TestCaseSource ...

的轮廓
[TestFixtureSource("DataFromExcel")]
public class MyTestFixture : BaseClassForTheTest
{
    IEnumerable<TestCaseData> DataFromExcel()
    {
        // Read the Excel file
        // For each row of data you want to use
        //     yield return new TestCaseData(/*test fixture args here*/);
    }

    public MyTestFixture(/* your arg list */)
    {
        // Save each arg in a private member
    }

    [Test, Order(1)]
    TestcodeForHomePage()
    {
        // Code that uses the saved values from the constructor
    }

    [Test,Order(2)]
    TestcodeForNextPage()
    {
        // Code that uses the saved values from the constructor
    }

}