tSQLtテスト フレームワークでは、データベースに対してTRUSTWORTHY ON を設定し、サーバーに対して SQL CLR を有効にする必要があります。
なぜこれらが必要なのですか?CLR オブジェクトなしで同じ/類似の機能を実現することは可能ですか?
tSQLtテスト フレームワークでは、データベースに対してTRUSTWORTHY ON を設定し、サーバーに対して SQL CLR を有効にする必要があります。
なぜこれらが必要なのですか?CLR オブジェクトなしで同じ/類似の機能を実現することは可能ですか?
次の機能はCLRコードとして完全に実装されており、CLRなしで実行するのは特に困難です(おそらく不可能です)。
それ以外は、tSQLtはCLRを内部的に使用して、2つのテーブルを比較することで生成できる文字列など、非常に大きな文字列のフォーマットされた出力を生成します。オブジェクトの名前を変更するときに新しいオブジェクト名を生成するため(FakeTableやSpyProcedureなど)。
これらの機能を削除し、基本機能セットで機能するようにtSQLtを変更できると考えられます(もちろん、いくつかの制限があります)。ただし、tSQLtの将来のリリースで何が行われるかを見据えているため、CLRでさらに多くのことが行われる可能性が非常に高くなります。
TRUSTWORTHY ON は不要になりました。リリース ノートを参照してください: http://tsqlt.org/748/tsqlt-v1-0-5873-27393-release-notes/
tSQLt を使用する場合、おそらく SQL CLR を有効にする以外に選択肢はありません。
非対称キーを作成することで、データベースを TRUSTWORTHY ON に設定するという要件を回避する方法があります - http://msdn.microsoft.com/en-us/library/ms345106.aspxを参照してください。
これが受け入れられない場合は、データベースにオブジェクトを作成する必要のない他のデータベース ユニット テスト ツールがあります - たとえば、DbFit