我已经开始使用tsqlt了,我的问题是,是否有可能只有测试内容的单独数据库? (表/ sp /汇编等)。
此测试数据库将与实际/目标数据库位于同一实例上。
如果我试图伪造一张桌子,我会收到以下错误:
FakeTable could not resolve the object name, 'target_db.dbo.Sometable'
有没有人有这方面的经验?
感谢。
答案 0 :(得分:9)
正如您所发现的那样,目前无法实现,因为模拟程序不接受三个部件名称。这是SQL Test的用户反馈论坛(RedGate的产品,作为tSQLt的前端)所涵盖的内容:http://sqltest.uservoice.com/forums/140716-sql-test-forum/suggestions/2421628-reduce-the-footprint
tSQLt框架的作者之一Dennis Lloyd在该线程的末尾写道,他们将继续考虑支持单独的'tSQLt'数据库。
模拟远程对象的相关问题我希望有所帮助,
戴夫
答案 1 :(得分:9)
您现在可以执行此操作,只要tSQLt框架位于其他数据库中:
EXEC tSQLt.FakeTable '[dbo].[Position]';
EXEC OtherDB.tSQLt.FakeTable '[dbo].[PositionArchive]';
这意味着您至少可以将测试放在所需的位置,但必须在正在测试的实际数据库中安装该框架。哪个不完美,但它更好。