C# 如何在UI测试运行之前和之后设置和清理我的数据库

C# 如何在UI测试运行之前和之后设置和清理我的数据库,c#,visual-studio,silverlight-4.0,coded-ui-tests,database-scripts,C#,Visual Studio,Silverlight 4.0,Coded Ui Tests,Database Scripts,我正在尝试在我的Silverlight应用程序上自动化ui测试。我需要在运行测试时设置并清除Oracle数据库 我已经创建了一个脚本:“setup.sql”,在这里我定义了要执行的查询的名称。我将此文件添加到Localsettings配置的Deployment选项卡上 setup.sql CREATE TABLE HSDEV.TESTE_MARIA1 ( Id_test int, LastName varchar(255), FirstName varchar(2

我正在尝试在我的Silverlight应用程序上自动化ui测试。我需要在运行测试时设置并清除Oracle数据库

我已经创建了一个脚本:“setup.sql”,在这里我定义了要执行的查询的名称。我将此文件添加到Localsettings配置的Deployment选项卡上

setup.sql

  CREATE TABLE HSDEV.TESTE_MARIA1
  (
    Id_test int,
    LastName varchar(255),
    FirstName varchar(255)
  )
然后,我创建了一个.bat文件,并将该文件添加到部署选项卡com Localsettings配置中,然后在安装和清理脚本中选择该路径

setup.bat

sqlcmd -S COMPUTERNAME -i setup.sql
这两个文件都在解决方案文件夹中

然后,我创建一个简单的web测试并运行它。测试通过,但未在我的数据库上创建表


我做错了什么?我遗漏了什么吗?

您不应该为编码的ui测试设置数据库。相反,您应该模拟您的数据库。用户界面是被测系统(SUT),而不是数据库。你必须尽可能地隔离你的SUT。这通常是通过模拟框架完成的。

您不应该为编码的ui测试设置数据库。相反,您应该模拟您的数据库。用户界面是被测系统(SUT),而不是数据库。你必须尽可能地隔离你的SUT。这通常是通过模拟框架完成的。

表是否已经存在?在尝试创建该表之前,应检查该表是否已存在。我的数据库中不存在该表。该表是否已存在?您应该在尝试创建表之前检查该表是否已存在。我的数据库中不存在该表。是的,我知道我可以使用模拟对象来完成此操作。我搜索了关于mock框架的内容,但没有发现任何有用的东西,你能帮我吗?维基百科有一篇关于mock的好文章:有rhinomock,有NMock,有Moq谢谢。我的问题是我不能独自决定我要做什么。如果我的团队负责人决定测试一个真实的数据库,我就必须这样做。我将有一个干净的数据库用于测试,这样就不会有问题。我认为这不是正确的答案,而且有些场景需要对集成测试、回归测试等进行全堆栈测试,所以这个答案有点误导。@NikolaMarkezic你是对的,但是OP专门要求进行UI测试。是的,我知道我可以使用模拟对象来完成。我搜索了关于mock框架的内容,但没有发现任何有用的东西,你能帮我吗?维基百科有一篇关于mock的好文章:有rhinomock,有NMock,有Moq谢谢。我的问题是我不能独自决定我要做什么。如果我的团队负责人决定测试一个真实的数据库,我就必须这样做。我将有一个干净的数据库用于测试,这样就不会有问题。我认为这不是正确的答案,而且有些场景需要对集成测试、回归测试等进行全堆栈测试,所以这个答案有点误导。@NikolaMarkezic你是对的,但是OP专门要求进行UI测试。