Невозможно выполнить удаленные хранимые процедуры из TST (средство автоматизации SQL) - PullRequest
1 голос
/ 25 ноября 2011

В настоящее время я изучаю TST (инструмент тестирования автоматизации SQL), который будет способствовать регрессионному тестированию базы данных. Мне удалось создать базовый контрольный пример, который приведен ниже:

/* 
    Verification of stored proc - FOH_Status
    Returns online availabity status for specified date
*/
/****** Object:  StoredProcedure [dbo].[SQLTest_Status]    Script Date:      11/23/2011 16:56:00 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE dbo.SQLTest_Status
AS
BEGIN
    ---CREATE A TEMP TABLE
    CREATE TABLE #ControlValue (
        ControlMode TINYINT
    )

    INSERT INTO #ControlValue EXEC dbo.Status 17254, 3 ,'2011-11-20   00:00:00' 
    DECLARE @CONTROL TINYINT
    SET @CONTROL = (SELECT TOP 1* FROM #ControlValue)

    EXEC TST.Assert.Equals 'ControlMode enabled for specified date', 1, @CONTRO
END 
GO      

Затем я перехожу к ссылке на наш сервер QA SQL, которая прошла успешно. Затем изменил хранимую процедуру для вызова хранимой процедуры на сервере QA SQL:

INSERT INTO #ControlValue EXEC [X.X.X.X].databasename.dbo.Status 17254, 3 ,'2011-11-20 00:00:00' 

После запуска теста от TST Runner произойдет сбой с сообщением об ошибке транзакции DTC:

Поставщик OLE DB «SQLNCLI10» для связанного сервера «X.X.X.X» вернул сообщение «Менеджер транзакций отключил свою поддержку удаленных / сетевых транзакций.».

Ошибка: 7391. Операция не может быть выполнена, поскольку поставщику OLE DB "SQLNCLI10" для связанного сервера "X.X.X.X" не удалось начать распределенную транзакцию.

Я уже подтвердил, что MS DTC будет разрешать удаленные подключения, входящие и исходящие вызовы на сервере QA SQL.

Кроме того, запустите хранимую процедуру в окне запроса и вернет правильный набор результатов

EXEC [X.X.X.X].databasename.dbo.Status 17254, 3 ,'2011-11-20 00:00:00' 

Есть идеи, как решить эту проблему?

Должен ли я изменить запрос, чтобы включить транзакцию, поскольку возвращаемая ошибка включает 'не удалось начать распределенную транзакцию'

Ответы [ 2 ]

1 голос
/ 26 ноября 2011
0 голосов
/ 27 ноября 2011

Мне интересно, что вы используете среду модульного тестирования SQL Server.Здесь, в Red Gate, мы проводим некоторые исследования в области использования таких инструментов и надеемся довольно скоро выпустить графический модуль для запуска модульных тестов в SSMS.Смотрите www.sql-test.com.Этот инструмент основан на открытой среде tSQLt.Это тот, который вам встречался?

Может быть, вы заинтересованы в том, чтобы помочь нам, предоставив нам отзывы о ваших требованиях к модульному тестированию?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...