0

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 をアンインストールして再インストールします。

4

0 に答える 0