問題タブ [tsqlt]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
tsqlt - Geography データ型の tSQLt AssertEqualsTable サポート
geography 列を含む 2 つのテーブルを作成し、tSQlt.AssertEqualsTable を使用すると、テストは次のように失敗します。
失敗しました: データ型の演算子が無効です。演算子が等しい、型が地理に等しい{,1}
tSQLt がテーブル比較の地理データ型をサポートしているかどうかは誰にもわかりませんか?
sql-server - tSQLt faketable がテーブル マッピングをリセットしない場合、どうすれば回復できますか?
faketable 関数が通常に再割り当てされませんでした。faketable を使用したすべてのテーブルには、単体テストの挿入で使用した値のコンテンツが含まれています。それは多くのテーブルであり、データベースが役に立たなくなりました。この問題、または少なくともその原因の解決にご協力ください。これにより、CI 展開プロセスでこれを使用することに非常に神経質になります。さらに重要なのは、ローカル開発の取り組みです。
tsql - TSQLT単体テスト-データ型textとtextは、equalto演算子で互換性がありません
AssertEqualsTableからこのエラーが発生します。「データ型textとtextは、equalto演算子で互換性がありません。」
それから
「'TableCompare'プロシージャがNULLのステータスを返そうとしましたが、これは許可されていません。代わりにステータス0が返されます。」
-関連するテーブル情報の一部
sql-server - マスターデータベースに記録されているデータベース所有者SIDがデータベース所有者SIDと異なります
tSQLtを既存のデータベースにインストールしようとすると、次のエラーが発生します。
マスターデータベースに記録されているデータベース所有者SIDは、データベース''に記録されているデータベース所有者SIDとは異なります。この状況を修正するには、ALTERAUTHORIZATIONステートメントを使用してデータベース''の所有者をリセットします。
group-by - 可能な値の範囲で結果をグループ化する T-SQL
質問の言い方がわからない:
などの問い合わせがあります
および like によるグループ
与える:
私がやりたいのは、次のような「範囲」を使用して結果の「分割」を取得することです。
これを行う簡単な方法はありますか?
sql-server - tsqlt エラー処理 トランピング ストアド プロシージャ (ユニット) エラー ハンドラ
ストアド プロシージャ内でユーザーが指定した GUID を検証しようとすると、単純な方法が使用されました。ユーザー入力を CHAR(36) として受け取り、それを TRY CATCH 内で UNIQUEIDENTIFIER として明示的にキャストします。CATCH は、RAISERROR を使用してカスタム エラーの説明でエラーをバブルします。
ストアド プロシージャを手動で実行すると、すべてが期待どおりに実行され、エラーが発生します。
ユニット (GUID 検証を伴うプロシージャ) を呼び出す tSQLt テストを作成し、出力されたエラーを処理して、予想されるエラーと比較すると、トランザクション エラーで継続的に失敗します。tSQLt がエラーを検出し、tSQLt フレームワーク内で処理しました。
これは、異なるデータ型への CAST の失敗の重大度が tSQLt によって処理されており、ストアド プロシージャ内の TRY/CATCH がそれを処理するのを妨げていることを示唆しています。ネストされたプロシージャと同様に、子プロシージャ内の TRY/CATCH が無視され、親プロシージャにバブルアップすることがあります。例は、子プロシージャの場合です。存在しないテーブルを参照しています。
誰かに同様の問題がありましたか?単に私の現在の考え方を検証するだけです。
テストを削除し、他の場所でテストされていますが、これにより、DB 単体テストに「穴」ができました。
最後に、提供された CHAR パラメータに対して CAST 以外の別の検証を実行し、その方法でエラーを発生させることができることを知っていることを言及する必要があると思いますが、これは tSQLt クエリであり、tSQL クエリではありません。
編集
コードの例:
@sGUID は CHAR(36) であり、プロシージャに渡されるパラメータです。
SELECT 行は、CATCH tSQLt をトリガーすることはなく、事前に介入しているように見え、ROLLBACK トランザクション エラーをスローします。
tsqlt - tSQLt AssertEqualsTable は順序をチェックしません
まったく同じスキーマで、実際のテーブルと期待されるテーブルが 2 つ定義されています。予想されるテーブルに、ID が 2、1 の 2 つの行を挿入します。
走る
次に実際のデータを入力します
結果を比較します。
データの順序が異なっていても (実際の ID は 1、2)、テストはパスします。
テストで SELECT * FROM actual と SELECT * FROM expected を追加し、tSQLt.Run '{テスト名}' でテストを独自に実行して、データが異なることを確認しました。
これが既知のバグかどうかは誰にもわかりませんか? どうやら行ごとにチェックすることになっているので、順序をチェックする必要があります。返される他のすべての列は NULL であり、値を含むのは ID 列だけです。
tsql - tsqlt - 単体テスト用に別のデータベースを作成する
私は tsqlt を使い始めました。私の質問は、テスト用のものだけで別のデータベースを持つことは可能ですか? (テーブル/SP/アセンブリなど)。
このテスト用データベースは、実際の/ターゲット データベースと同じインスタンスに置かれます。
テーブルを偽造しようとすると、次のエラーが発生します。
誰もこれを経験したことがありますか?
ありがとう。
triggers - tSQLt 削除トリガーを使用した FakeTable
私は jsut が tSQLt の使用を開始し、トリガーをテストしようとしています。FakeTable プロシージャを呼び出してテストを実行しましたが、トリガーが実行されません。FakeTable を使用しない場合、トリガーが実行されます。それは本当に悪いようで、それらを再読み込みする方法があるという情報を見つけることができません.
次に、トリガーが FakeTable によって削除されたと思いましたが、呼び出し後にトリガーを再作成し、テストで次のコードを実行しました。
次のエラーが発生しました:「データベースには、'MoveDataFromAToB' という名前のオブジェクトが既に存在します。{MoveDataFromAToB,14} (ROLLBACK ERROR もありました --> 現在のトランザクションをコミットできず、セーブポイントにロールバックできません。トランザクション全体をロールバックします。{Private_RunTest,60})"
tSQLt の経験があり、この問題の回避策を知っている人はいますか?
cruisecontrol.net - tSQLtからの成功終了コードは何ですか
tSQLt / SQLTestをCruiseControl.NETと統合しようとしています。テストが実行され、結果を表示するxslファイルを作成しましたが、テストが失敗した場合にビルドを失敗としてマークする方法を知る必要があります。
私のCCNetexecは次のとおりです。
RunTests.sql:
テストが実行され、xmlで結果を生成する後続のタスクがあり、ビルドログにマージされます。
では、ビルド全体を失敗させるにはどうすればよいですか?