SSIS パッケージの統合テストを作成しようとしています。SSIS パッケージが SSIS カタログ (SSISDB) にデプロイされました。Winders Server 2012 OS を搭載したサーバーを使用しており、SQL Server 2012 を使用しています
私のコードは以下です
EXEC tSQLt.NewTestClass 'testClass'
CREATE PROCEDURE testClass.[test ssis package integration]
AS
BEGIN
IF OBJECT_ID('actual') IS NOT NULL DROP TABLE actual;
IF OBJECT_ID('expected') IS NOT NULL DROP TABLE expected;
/* Assemble
--------------------------------------------------------------------- */
/* Clear source tables */
TRUNCATE TABLE [Database1].[dbo].[table1];
TRUNCATE TABLE [Database1].[dbo].[table2];
/* Clear destination tables */
TRUNCATE TABLE [Database2].[dbo].[table1];
/* Insert set up data */
---
/* Create expected table */
CREATE TABLE expected (
ID INT,
Code NVARCHAR(50)
);
/* Insert expected data */
---
/* Act
--------------------------------------------------------------------- */
/* Execute SSIS package */
DECLARE @execution_id BIGINT;
EXEC [SSISDB].[catalog].[create_execution] @package_name=N'Portfolio.dtsx', @execution_id=@execution_id OUTPUT, @folder_name=N'DDoubleU', @project_name=N'PortfolioMaster', @use32bitruntime=False, @reference_id=Null;
DECLARE @var0 SMALLINT = 1;
EXEC [SSISDB].[catalog].[set_execution_parameter_value] @execution_id, @object_type=50, @parameter_name=N'LOGGING_LEVEL', @parameter_value=@var0;
EXEC [SSISDB].[catalog].[set_execution_parameter_value] @execution_id, @object_type=50, @parameter_name=N'SYNCHRONIZED', @parameter_value=1
EXEC [SSISDB].[catalog].[start_execution] @execution_id;
/* Select record with MAX data load ID because we want the data set just created*/
SELECT [ID], [Code]
INTO actual
FROM [Database2].[dbo].[table1];
/* Assert
--------------------------------------------------------------------- */
EXEC tSQLt.AssertEqualsTable 'expected', 'actual';
/* Clean up
--------------------------------------------------------------------- */
DROP TABLE actual;
DROP TABLE expected;
END;
私が抱えている問題は、SSMSで以下のコマンドを実行すると
EXEC tSQLt.Run 'testClass';
SSIS パッケージはトリガーされません。
私がこれまでに試したこと:
スタックでこの投稿を読む- 私が見ることができるものから、ここで説明されているようにテストを作成しました。
SSMS で SSIS パッケージを分離して実行することになっているコードを実行します。これは期待どおりに機能します。これは、パッケージが実行され、宛先テーブルのデータが期待どおりであることを意味します。
WAITFOR DELAY
コマンドの後にコマンドを追加[start_execution]
して、SSIS パッケージが完了する時間があることを確認しますが、これは問題ではないようです。
tSQLt をアンインストールして再インストールします。