我目前是一家保险公司的质量检查实习生,并且正在该公司的网站上进行一些测试。我已经做过很多案例,现在他们正在要求我努力的数据驱动测试。
我已经按照所有条件进行了测试;
1个TestFixture
对测试用例中的每个页面进行测试。
喜欢这个
[TestFixture]
public class Test : BaseClassForTheTest
{
[Test, Order(1)]
TestcodeForHomePage
[Test,Order(2)]
testcodeForNextPage
}
因此,我需要对excel文件中的许多数据进行全面测试。您可能已经注意到,我正在使用NUnit。
真正的问题是,如何将数据表传递到TestFixture中,并为该数据表运行测试块。
在运行时,第一个测试块将针对数据表中名为MyTable
的第一行和第二个测试块将在数据表中名为SecondTable
的第一行中运行。由于这些测试是由上一个测试块触发的,因此我无法将数据源提供给这些测试块。
我已经上网查询了,但是找不到将数据表传递到TestFixture的任何信息。在此先感谢人们:)
答案 0 :(得分:0)
NUnit没有内置任何内容来读取Excel文件。但是您可以使用TestCaseSource
或TestFixtureSource
从任意位置生成数据。
您的源将必须是一个方法,然后该方法将读取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
}
}