Испытательные классы tSQLt представляют собой схемы со специальным расширенным свойством.
Отличное решение Cade Roux для renaming schemas - это создать новую схему, перенести все объекты, а затем отказаться от старой схемы.
Если мы сделали это, мы потеряли бы расширенное свойство.
Давайте адаптируем его для рамки tSQLt.
Как переименовать тестовый tSQLt класс
Создать новый тестовый класс.
EXECUTE tSQLt.NewTestClass
@ClassName = 'CustomerTests';
Вы должны увидеть старый класс и новый класс вместе в tSQLt.TestClasses
зрения.
SELECT *
FROM tSQLt.TestClasses;
Name SchemaId
----------------------------------------- ----------
SQLCop 7
BackendLayerCustomerAdministrationTests 10
CustomerTests 14
Кейд использовал select variable concatenation трюк Криса Шеффера построить список операторов передачи, и распечатать результат.
DECLARE @sql NVARCHAR(MAX) = N'';
SELECT @sql = @sql +
N'ALTER SCHEMA CustomerTests
TRANSFER BackendLayerCustomerAdministrationTests.' + QUOTENAME(name) + N';' +
CHAR(13) + CHAR(10)
FROM sys.objects
WHERE SCHEMA_NAME([schema_id]) = N'BackendLayerCustomerAdministrationTests';
PRINT @sql;
Уродливый, но эффективный.
Скопируйте результат и выполните его как новый запрос.
ALTER SCHEMA CustomerTests
TRANSFER BackendLayerCustomerAdministrationTests.[test uspMaintainCustomer validate merged data];
ALTER SCHEMA CustomerTests
TRANSFER BackendLayerCustomerAdministrationTests.[test uspMaintainCustomerPermissions throws error when PermissionValue is missing or empty];
Здесь показаны только два теста, но они должны работать для всех.
Теперь оставьте старый класс испытаний.
EXECUTE tSQLt.DropClass
@ClassName = N'BackendLayerCustomerAdministrationTests';
Старый класс должен исчезнуть из поля зрения.
SELECT *
FROM tSQLt.TestClasses;
Name SchemaId
----------------------------------------- ----------
SQLCop 7
CustomerTests 14
Повторите все свои тесты, чтобы проверить, что это сработало.
EXECUTE tSQLt.RunAll;
+----------------------+
|Test Execution Summary|
+----------------------+
|No|Test Case Name |Result |
+--+----------------------------------------------------------------------------+-------+
|1|[CustomerTests].[test uspMaintainCustomer throws error on missing APIKey] |Success|
|2|[CustomerTests].[test uspMaintainCustomerPermissions validate merged data] |Success|
|3|[SQLCop].[test Decimal Size Problem] |Success|
|4|[SQLCop].[test Procedures Named SP_] |Success|
|5|[SQLCop].[test Procedures using dynamic SQL without sp_executesql] |Success|
|6|[SQLCop].[test Procedures with @@Identity] |Success|
|7|[SQLCop].[test Procedures With SET ROWCOUNT] |Success|
-------------------------------------------------------------------------------
Test Case Summary: 7 test case(s) executed, 7 succeeded, 0 failed, 0 errored.
-------------------------------------------------------------------------------
Успех!
Красивые. Спасибо, Дэвид! Никогда не поздно! –