MSTest自动回滚
说明
使用
TransactionScope可控制提交和回滚Complete: 提交Dispose: 回滚MSTest并没有XUnit的
IActionTestAttribute,可以通过TestInitializeAttribute(创建事务)和TestCleanupAttribute(事务回滚)实现
操作方法
添加
Rollback父类提供TestInitialize和TestCleanup1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33[]
public class Rollback : BaseTest
{
protected TransactionScope transaction;
protected TransactionScopeOption TransactionScopeOption { get; } = TransactionScopeOption.RequiresNew;
protected TransactionOptions TransactionOptions { get; } = new TransactionOptions { Timeout = new TimeSpan(0, 10, 0) };
// 测试前创建Scope
[]
public void TransactionStart()
{
transaction = new TransactionScope(TransactionScopeOption, TransactionOptions);
}
// 测试后自动回滚
[]
public void TransactionRollback()
{
transaction.Dispose();
}
}
```cs
2. 子类继承`Rollback`,对每个方法执行都创建事务并回滚
3. 若不想对某个方法回滚,可控制`transaction`提交
```cs
[]
public void CreateSuccess()
{
address.Insert(info);
transaction.Complete(); // 提交事务
}
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 AlMirai!