Automation 是否有一种方法可以让测试用例源从外部源(如excel)读取数据?
我正在用Nunit写新的测试。我希望测试从excel表(数据驱动测试)中获取其TestCaseSource值 但是,我注意到在输入[Test]方法之后实际上会访问[SetUp]方法,因此我无法初始化从TestCaseSource中的excel工作表中读取的数据 在运行每个测试之前,如何从excel文件初始化TestCaseSource 谢谢 我尝试过使用像MyFactoryClass这样的单独类,然后使用Automation 是否有一种方法可以让测试用例源从外部源(如excel)读取数据?,automation,automated-tests,nunit,testcasesource,Automation,Automated Tests,Nunit,Testcasesource,我正在用Nunit写新的测试。我希望测试从excel表(数据驱动测试)中获取其TestCaseSource值 但是,我注意到在输入[Test]方法之后实际上会访问[SetUp]方法,因此我无法初始化从TestCaseSource中的excel工作表中读取的数据 在运行每个测试之前,如何从excel文件初始化TestCaseSource 谢谢 我尝试过使用像MyFactoryClass这样的单独类,然后使用 [Test, TestCaseSource(typeof(MyFactoryClass),
[Test, TestCaseSource(typeof(MyFactoryClass), "TestCases")]
但是,这是在使用
[Setup]
方法之前达到的,并且无法识别以每个测试的名称命名的excel文件的名称。使用NUnit时,了解测试在加载和运行时所经历的阶段非常重要。因为我不知道你们在每个阶段都在做什么,我将从概述这些阶段开始。在您发布一些代码之后,我将添加到这个答案中,这些代码显示了您的工厂类、您的[SetUp]
方法和您的实际测试正在做什么
简言之,NUnit在运行它们之前加载测试。实际上,它可能会为每个负载运行多个分层测试-这取决于所使用的转轮类型。示例:
- 执行
中的所有代码[TestCaseSource]
- 对于每个
(为了简单起见,我将忽略TestFixture
)setupfixture
- 运行任何
方法[OneTimeSetUp]
- 对于每个
或测试
测试用例
- 运行任何
方法[SetUp]
- 运行测试本身
- 运行任何
方法[TearDown]
- 运行任何
- 运行任何
方法[onetimeeardown]
- 运行任何
[TestCaseSource]
中,如果您事先知道要创建哪些对象,则只应调用创建对象的工厂。通常,最好的方法是初始化将用于创建对象的参数。然后,根据目标对象的生存期,这些对象将用于在[OneTimeSetUp]
或[SetUp]
中实际创建对象
这已经足够(可能太多)概括了!如果你发布一些代码,我会给这个答案添加更具体的建议。我实际上没有太多代码。我试图弄清楚如何进行数据驱动测试,并找出是否可以从excel表格中读取我的测试参数。我想我可以从外部源读取参数,然后以某种方式将参数传递给[TestCaseSource]