我有一个TestClass
,其中包含许多TestMethod
个方法。有一种ClassInitialize
方法可以设置所有测试所需的公共环境。
但是,某些测试需要在回滚的事务中运行,而有些测试不需要
有没有办法用MSTest选择的特殊属性装饰那些少数测试,然后在运行之前设置TransactionScope
并在之后回滚?
或者,TestInitialize
方法中有没有办法告诉哪个测试方法正在运行,并手动检查该方法是否有自定义属性,如果是这样,请手动设置TransactionScope
?等价物必须编码到TestCleanup
方法中。
我宁愿不将需要tx回滚的这些测试拆分为单独的TestClass
,因为我只需要一个ClassInitialise
方法来设置环境,并且运行起来很昂贵。我无法保证哪个TestClass
会在另一个TestClass
之前执行(它们甚至可以分布在不同的测试代理中)。
作为一个后备,我知道我可以让每个TestMethod
在回滚的tx内运行,但我只是想知道我要求的是否可能。