10

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

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

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

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

有没有人有这方面的经验?

谢谢。

4

2 回答 2

10

正如您所发现的,这目前是不可能的,因为模拟过程不接受三个部分名称。这是 SQL 测试(RedGate 的产品,充当 tSQLt 的前端)的用户反馈论坛中涵盖的内容:http: //sqltest.uservoice.com/forums/140716-sql-test-forum/suggestions/ 2421628-减少足迹

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

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

我希望这会有所帮助,

戴夫

于 2012-11-23T07:46:49.707 回答
9

您现在可以执行此操作,只要 tSQLt 框架位于另一个数据库中:

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

来源

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

于 2014-03-07T21:11:03.880 回答