gpt4 book ai didi

sql - 使用单元测试项目进行CLR SQL存储过程测试

转载 作者:行者123 更新时间:2023-12-04 04:23:35 26 4
gpt4 key购买 nike

我只是开始使用VS2008来为SQL 2008编写clr存储过程。在编写C#代码时,我习惯于使用单独的“测试项目”来放置所有的单元测试代码,但是乍一看,我发现不能与带有存储过程的clr sql项目具有相同的设置。这样就可以感觉到了,但我缺少几个配置参数,但是我不确定它们可能是什么。

我在用

  • Visual Studio 2008年
  • MS测试
  • MS SQL 2008年

  • 我的要求是:
  • 在Visual Studio调试器
  • 中调试存储过程
  • 有很多单元测试来测试存储过程

  • 有谁知道我可以如何让单元测试项目将存储过程正确地分配到服务器,连接到sql服务器,并允许我逐步进行单元测试到服务器上的存储过程?

    ****更新****

    谢谢大家到目前为止的回答,但是他们并不是我要找的东西。

    下面的 Mark Seemann's答案是一种我不知道的有趣方法,在将数据库重置为已知状态时,我一定会使用。但是,我正在寻找调试CLR存储过程的方法,并且看来Mark的方法不会允许我从单元测试项目进入SQL服务器,并调试服务器上的代码。

    我正在寻找实际调试服务器上的C#的方法,很像下面列出的 pho3nix解决方案。但是,使用这种标准方法,您需要使用“Test.sql”文件而不是在Visual Studio中使用单元测试项目来编写测试脚本。

    我希望我的解决方案中可以有两个项目,一个用于CLR存储过程,一个用于单元测试项目。当我想在单元测试项目中运行测试时,希望对CLR存储过程项目所做的所有更改都将发布到服务器,测试项目将开始执行,并且如果我在CLR中设置了断点当单元测试开始测试该存储过程时,它将在服务器上中断,然后我可以逐步执行代码。

    到目前为止,我找到的最接近的解决方案是 Alex Kuznetsov and Alex Styler,但是使用此解决方案,我无法单步执行SQL Server。

    ****更新2 ****

    这更像是一个“麻烦”来提出这个问题……我仍然没有从单元测试步入SQL Server的运气。还有其他想法吗?

    最佳答案

    必须先在连接上启用SQL/CLR调试,然后才能调试代码。
    为此,请按照此处的说明进行操作
    http://msdn.microsoft.com/en-us/library/ms165039(VS.80).aspx

    请注意,当您调试C#SP时,SQL Server中的所有托管线程将在调试期间挂起

    希望这可以帮助。

    关于sql - 使用单元测试项目进行CLR SQL存储过程测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1028540/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com