Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 可以在SQL代理中自动执行'EXEC tSQLt.RunAll'吗?_Sql Server_Ssms_Tsqlt - Fatal编程技术网

Sql server 可以在SQL代理中自动执行'EXEC tSQLt.RunAll'吗?

Sql server 可以在SQL代理中自动执行'EXEC tSQLt.RunAll'吗?,sql-server,ssms,tsqlt,Sql Server,Ssms,Tsqlt,我遵循了中的示例,并成功地为我的SQL Server数据库创建了单元测试和集成测试。我知道Redgate销售用于自动化tSQLt单元和集成测试的DevOps工具,但我没有那么多钱 我的免费想法是按计划运行SQL代理任务。使用命令EXEC tSQLt.RunAll创建T-SQL作业步骤非常简单。虽然我将SQL代理配置为在作业步骤失败时向我发送电子邮件,但我不知道代理如何知道在运行EXEC tSQLt.RunAll时是否有任何失败的测试步进并提醒我 没有什么可以阻止我手动运行这些测试,但我真的很想让

我遵循了中的示例,并成功地为我的SQL Server数据库创建了单元测试和集成测试。我知道Redgate销售用于自动化tSQLt单元和集成测试的DevOps工具,但我没有那么多钱

我的免费想法是按计划运行SQL代理任务。使用命令
EXEC tSQLt.RunAll创建T-SQL作业步骤非常简单。虽然我将SQL代理配置为在作业步骤失败时向我发送电子邮件,但我不知道代理如何知道在运行
EXEC tSQLt.RunAll时是否有任何失败的测试步进并提醒我

没有什么可以阻止我手动运行这些测试,但我真的很想让它们自动化,这样我就可以专注于其他事情了


是否有人能够使用SQL代理完成此操作或获得类似结果?

正如Martin Smith指出的,如果任何测试失败或遇到异常,tSQLt将在执行结束时引发错误。整个过程中的任何错误都会被捕获,因此您将始终获得完整的运行


代理允许您捕获输出,以便您能够看到失败的内容。

如果测试失败,将引发错误,因此作业将出错,您可以使用正常的SQL代理错误警报。但如何部署更改?您能将其集成到其中吗?@MartinSmith--SQL代理的工作方式与您描述的相同。在我的例子中,当用户提供不正确的数据时,它可以作为一个预警系统。它提示我创建更多的单元测试并转移到错误表脚本。您在生产中没有使用tSQLt,@RandomHandle,是吗?你的“当用户提供不正确的数据”让我有点担心。tSQLt擅长将被测对象与数据库的其余部分隔离开来。但这也意味着tSQLt在生产系统中做一些可能“引起痛苦”的事情,它不是传统的生产系统。这是一个由少数非技术人员使用的内部网站。它也是一个从未完成的数据库,因为用户希望不断改进它。我知道我违反了其中一条规则,但我必须做点什么。也许“集成测试”不是正确的术语:我在计划刷新期间测试真实数据记录,这会导致一个或多个“测试”失败,并标记我调整系统。(培训用户并不总是一个选项。)那么“开发”在这个服务器上没有经过测试吗?如果是这样,并且你不介意出错的风险,那么使用代理工作就足够了。但感觉现在发现问题有点太晚了。