【问题标题】:tsqlt - create separate database for unit testingtsqlt - 为单元测试创​​建单独的数据库
【发布时间】:2012-11-21 15:01:45
【问题描述】:

我已经开始使用 tsqlt,我的问题是可以有一个单独的数据库,只包含测试的东西吗? (表/sp 的/程序集等)。

此测试数据库将与实际/目标数据库位于同一实例上。

如果我尝试伪造表格,我会收到以下错误:

FakeTable could not resolve the object name, 'target_db.dbo.Sometable'

有人有这方面的经验吗?

谢谢。

【问题讨论】:

  • 它似乎没有 tsqlt 那么多的活动,但 TSQLUnit 确实允许您保留一个单独的数据库进行测试。

标签: tsql tsqlt


【解决方案1】:

正如您所发现的,目前这是不可能的,因为模拟程序不接受三部分名称。这已在 SQL 测试(RedGate 的产品,充当 tSQLt 的前端)的用户反馈论坛中讨论过:http://sqltest.uservoice.com/forums/140716-sql-test-forum/suggestions/2421628-reduce-the-footprint

tSQLt 框架的作者之一 Dennis Lloyd 在该线程的末尾写道,他们将继续考虑支持单独的“tSQLt”数据库。

还有一个在http://sqltest.uservoice.com/forums/140716-sql-test-forum/suggestions/2423449-being-able-to-mock-fake-remote-objects上模拟远程对象的相关问题

希望对你有帮助

戴夫

【讨论】:

  • 是的。非常感谢您的帮助!
【解决方案2】:

您现在可以这样做,只要 tSQLt 框架在另一个数据库中:

EXEC tSQLt.FakeTable '[dbo].[Position]';
EXEC OtherDB.tSQLt.FakeTable '[dbo].[PositionArchive]';

Source

这意味着您至少可以将测试放在您想要的位置,尽管您必须在实际的被测数据库中安装框架。这并不完美,但更好。

【讨论】:

    猜你喜欢
    • 2020-07-03
    • 1970-01-01
    • 1970-01-01
    • 2017-11-02
    • 2023-02-25
    • 1970-01-01
    • 2019-02-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多