将specflow scenerio包装在事务中以回滚测试数据不起作用

时间:2019-05-27 04:14:00

标签: c# transactions dapper specflow

我使用specflow为存储过程运行单元测试。我试图将所有内容包装在一个事务中,这样我就可以在每个测试用例之后回滚。但是,它仍然每次都会提交。

public class TestSortingSteps
{
    private TransactionScope _transactionScope;

    [BeforeScenario]
    public void BeforeScenario()
    {
        _transactionScope = new TransactionScope();
    }

    [AfterScenario]
    public void AfterScenario()
    {
        _transactionScope.Dispose();
    }
 [...]
}

任何地方都没有_transactionScope.Commit()。 我调试了代码,发现它确实在每种情况下都运行_transactionScope.Dispose(),但是每次测试后测试数据仍然显示在数据库中。

我正在使用dapper,并按如下方式插入我的测试数据:

public void insertQuery(){
    [...]
    using(IDbConnetion db = GetNewConnection()){
       db.Open();
       var result = db.Execute(insertSql, model)
    } 
}

0 个答案:

没有答案