rwo*_*ong 5 nunit delay-load testcasesource
我有一些使用TestCaseSource函数的NUnit测试.不幸的是,我需要的TestCaseSource函数需要很长时间才能初始化,因为它以递归方式扫描文件夹树以查找将传递给测试函数的所有测试图像.(或者,它可以在每次运行时从文件列表XML加载,但仍然需要自动发现新的图像文件.)
是否可以与TestCaseSource一起指定NUnit属性,以便NUnit在用户单击节点或运行测试套件之前不会枚举测试用例(不调用TestCaseSource函数)?
将所有测试图像存储在文件夹中的需求是项目要求,因为其他无权访问测试项目的人需要将新的测试图像添加到文件夹,而无需修改测试项目的源代码.然后他们就可以查看测试结果.
一些教条式的单位测试者可能会反驳说我正在使用NUnit来做一些它不应该做的事情.我不得不承认我必须满足一个要求,NUnit是一个很棒的工具,有一个很好的GUI,可以满足我的大多数要求,所以我不关心它是否是正确的单元测试.
其他信息(来自NUnit文档)
关于对象构造的注释
NUnit在加载测试时定位测试用例,使用非静态源创建每个类的实例,并构建要执行的测试列表.每个源对象此时仅创建一次,并在加载所有测试后销毁.
如果数据源位于测试夹具本身中,则使用TestFixtureAttribute上提供的fixture参数的相应构造函数或默认构造函数(如果未指定参数)创建对象.由于此对象在运行测试之前被销毁,因此除了通过参数本身之外,这两个阶段之间或不同运行之间无法进行通信.
似乎预先加载测试用例的目的是避免在TestCaseSource和测试执行之间进行通信(或副作用).这是真的?这是要求预先加载测试用例的唯一原因吗?
注意:
需要修改NUnit,如http://blog.sponholtz.com/2012/02/late-binded-parameterized-tests-in.html中所述.
有计划将此选项引入更高版本的NUnit.
| 归档时间: |
|
| 查看次数: |
1073 次 |
| 最近记录: |