加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – TransactionScope回滚可以与Selenium或Watin一起使用吗?

发布时间:2020-12-15 08:04:31 所属栏目:百科 来源:网络整理
导读:我正在尝试对我的ASP.NET应用程序进行一些自动化Web测试.我希望使用Xunit.net扩展中的AutoRollback属性来撤消测试期间所做的任何数据库更改. AutoRollback使用TransactionScope在测试之前启动事务,然后将其回滚. 当我尝试在交易期间点击我的Web应用程序时,它
我正在尝试对我的ASP.NET应用程序进行一些自动化Web测试.我希望使用Xunit.net扩展中的AutoRollback属性来撤消测试期间所做的任何数据库更改. AutoRollback使用TransactionScope在测试之前启动事务,然后将其回滚.

当我尝试在交易期间点击我的Web应用程序时,它总是超时.看起来这应该有用,有什么想法吗?这是我的测试:

[Fact]
[AutoRollback]
public void Entity_should_be_in_list()
{
    Entity e = new Entity
    {
        Name = "Test",};
    dataContext.Entities.InsertOnSubmit(e);
    dataContext.SubmitChanges();

    selenium.Open("http://localhost/MyApp");
    Assert.True(selenium.IsTextPresent("Test"));
}

解决方法

您的ASP.NET应用程序有一个单独的数据库上下文,它不知道您希望它加入由Xunit.net启动的事务.显然,数据库在事务启动时会锁定一些资源; Web应用程序耐心等待一段时间并最终放弃.

我认为最好的办法是从空数据库开始,使用SQL脚本创建模式并填充查找表(您的数据库是under source control,对吧?).另一种方法是在运行测试之前备份数据库,然后在完成后将其还原.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读