diff --git a/Build/ReleaseNotes.txt b/Build/ReleaseNotes.txt index ff0063220..bfb68d7e4 100644 --- a/Build/ReleaseNotes.txt +++ b/Build/ReleaseNotes.txt @@ -4,12 +4,35 @@ An online version of these release notes is available at: http://tsqlt.org/category/release-notes/ - --------------------------- Release: VLATEST-BUILD-NUMBER BUG FIXES: +N/A + +NEW FEATURES: + +1. SpyProcedure has a new optional parameter, @CallOriginal +2. SpyProcedure provides the variable @SpyProcedureOriginalObjectName within the CommandToExecute +3. NoTransaction test annotation --[@tSQLt:NoTransaction](@CleanUpProcedureName) + This annotation causes the test to be executed outside of a transaction. The @CleanUpProcedureName procedure is executed after the test completes. +4. UndoTestDoubles, useful when test double procedures like tSQLt.FakeTable are executed outside of a transaction +5. FakeFunction allows FakeDataSource to be a "VALUES" clause + +MISCELLANEOUS: + +1. Reduced the complexity of building and testing tSQLt +2. Removed dependency on Private_NullCellTable table +3. Installation of tSQLt can handle more edge cases +4. Standardized error messages +5. For tSQLt contributors: New build target 'tSQLtOnly', which skips Facade validation steps + +--------------------------- +Release: V1.0.7950.1808 + +BUG FIXES: + 1. Removed unexpected facade objects (aka ufos) from tSQLt dacpacs. NEW FEATURES: diff --git a/Source/BuildOrder.txt b/Source/BuildOrder.txt index df1c46aeb..6e0271bb4 100644 --- a/Source/BuildOrder.txt +++ b/Source/BuildOrder.txt @@ -119,6 +119,6 @@ tSQLt.(at)tSQLt_NoTransaction.sfn.sql tSQLt.RemoveExternalAccessKey.ssp.sql tSQLt.InstallExternalAccessKey.ssp.sql tSQLt.Private_InstallationInfo.sfn.sql -tSQLt.UndoSingleTestDouble.ssp.sql +tSQLt.Private_UndoSingleTestDouble.ssp.sql tSQLt.UndoTestDoubles.ssp.sql tSQLt._Footer.sql \ No newline at end of file diff --git a/Source/Source.ssmssqlproj b/Source/Source.ssmssqlproj index 85f3316e9..16b62a88c 100644 --- a/Source/Source.ssmssqlproj +++ b/Source/Source.ssmssqlproj @@ -2,8 +2,7 @@ - - + @@ -20,6 +19,9 @@ ExecutePrepareServer.sql + + + Run_Methods.sql @@ -209,9 +211,15 @@ tSQLt.PrepareServer.ssp.sql + + + tSQLt.Private_AssertNoSideEffects.ssp.sql + + + tSQLt.Private_AssertNoSideEffects_GenerateCommand.sfn.sql @@ -227,6 +235,9 @@ tSQLt.Private_CleanUp.ssp.sql + + + tSQLt.Private_CleanUpCmdHandler.ssp.sql @@ -392,6 +403,9 @@ tSQLt.Private_HostPlatform.svw.sql + + + tSQLt.Private_Init.ssp.sql @@ -442,6 +456,24 @@ tSQLt.Private_NewTestClassList.tbl.sql + + + + + tSQLt.Private_NoTransactionHandleTable.ssp.sql + + + + + + tSQLt.Private_NoTransactionTableAction.view.sql + + + + + + tSQLt.Private_NoTransactionHandleTables.ssp.sql + @@ -502,24 +534,6 @@ tSQLt.Private_ResetNewTestClassList.ssp.sql - - - - - tSQLt.Private_NoTransactionHandleTable.ssp.sql - - - - - - tSQLt.Private_NoTransactionTableAction.view.sql - - - - - - tSQLt.Private_NoTransactionHandleTables.ssp.sql - @@ -580,6 +594,12 @@ tSQLt.Private_SysTypes.svw.sql + + + + + tSQLt.Private_UndoSingleTestDouble.ssp.sql + @@ -712,12 +732,6 @@ tSQLt.Tests.view.sql - - - - - tSQLt.UndoSingleTestDouble.ssp.sql - diff --git a/Source/tSQLt.UndoSingleTestDouble.ssp.sql b/Source/tSQLt.Private_UndoSingleTestDouble.ssp.sql similarity index 65% rename from Source/tSQLt.UndoSingleTestDouble.ssp.sql rename to Source/tSQLt.Private_UndoSingleTestDouble.ssp.sql index 281d8eeac..068aa8f5e 100644 --- a/Source/tSQLt.UndoSingleTestDouble.ssp.sql +++ b/Source/tSQLt.Private_UndoSingleTestDouble.ssp.sql @@ -1,8 +1,8 @@ -IF OBJECT_ID('tSQLt.UndoSingleTestDouble') IS NOT NULL DROP PROCEDURE tSQLt.UndoSingleTestDouble; +IF OBJECT_ID('tSQLt.Private_UndoSingleTestDouble') IS NOT NULL DROP PROCEDURE tSQLt.Private_UndoSingleTestDouble; GO ---Build+ GO -CREATE PROCEDURE tSQLt.UndoSingleTestDouble +CREATE PROCEDURE tSQLt.Private_UndoSingleTestDouble @SchemaName NVARCHAR(MAX), @ObjectName NVARCHAR(MAX), @OriginalName NVARCHAR(MAX) diff --git a/Source/tSQLt.class.sql b/Source/tSQLt.class.sql index cbd5533f3..69012dd19 100644 --- a/Source/tSQLt.class.sql +++ b/Source/tSQLt.class.sql @@ -131,9 +131,6 @@ RETURN AND LE.LoginTime = ES.login_time WHERE ES.session_id = @@SPID; GO -/*-- -IF(LTRIM(ISNULL(@TestName,'')) = '') ---*/ CREATE PROCEDURE tSQLt.Private_SaveTestNameForSession @TestName NVARCHAR(MAX) diff --git a/Tests.EXTERNAL_ACCESS_KEY_EXISTS/EnableExternalAccessTests.class.sql b/Tests.EXTERNAL_ACCESS_KEY_EXISTS/EnableExternalAccessTests.class.sql index bbb974000..cc5aab4e9 100644 --- a/Tests.EXTERNAL_ACCESS_KEY_EXISTS/EnableExternalAccessTests.class.sql +++ b/Tests.EXTERNAL_ACCESS_KEY_EXISTS/EnableExternalAccessTests.class.sql @@ -129,6 +129,8 @@ BEGIN EXEC tSQLt.AssertLike @ExpectedPattern = 'The attempt to disable tSQLt features requiring EXTERNAL_ACCESS failed: %tSQLtCLR%', @Actual = @Actual; END; GO +--[@tSQLt:MinSqlMajorVersion](11) +-- There's a bug in SQL Server 2008R2 that makes the EXECUTE AS statement fail randomly. Disabling it on that version for now. CREATE PROCEDURE EnableExternalAccessTests.[test tSQLt.EnableExternalAccess returns -1, if @try = 1 and setting fails] AS BEGIN diff --git a/Tests/Tests.ssmssqlproj b/Tests/Tests.ssmssqlproj index 66968e619..a8a5e1d36 100644 --- a/Tests/Tests.ssmssqlproj +++ b/Tests/Tests.ssmssqlproj @@ -2,8 +2,7 @@ - - + @@ -20,6 +19,9 @@ AnnotationHostPlatformTests.class.sql + + + AnnotationNoTransactionTests.class.sql @@ -185,6 +187,9 @@ NewTestClassTests.class.sql + + + Private_AssertNoSideEffectsTests.class.sql @@ -362,6 +367,9 @@ ResultSetFilterTests.class.sql + + + Run_Methods_Tests.class.sql diff --git a/Tests/UndoTestDoublesTests.class.sql b/Tests/UndoTestDoublesTests.class.sql index 8040ac3d3..1c2b8b85d 100644 --- a/Tests/UndoTestDoublesTests.class.sql +++ b/Tests/UndoTestDoublesTests.class.sql @@ -214,7 +214,7 @@ BEGIN EXEC tSQLt.AssertEmptyTable @TableName = 'tSQLt.Private_RenamedObjectLog'; END; GO -CREATE PROCEDURE UndoTestDoublesTests.[test restores a faked stored procedure] +CREATE PROCEDURE UndoTestDoublesTests.[test restores a spied stored procedure] AS BEGIN EXEC ('CREATE PROCEDURE UndoTestDoublesTests.aSimpleSSP @Id INT AS RETURN;');