@@ -1533,7 +1533,12 @@ BEGIN
15331533 EXEC tSQLt .SpyProcedure @ProcedureName = ' tSQLt.UndoTestDoubles' , @CommandToExecute = ' RAISERROR('' AnAbortError'' ,16,10);' ;
15341534
15351535 EXEC tSQLt .SetSummaryError 0 ;
1536- EXEC tSQLt .Run ' MyInnerTests.[test1]' ;
1536+ BEGIN TRY
1537+ EXEC tSQLt .Run ' MyInnerTests.[test1]' ;
1538+ END TRY
1539+ BEGIN CATCH
1540+ /* -- not really interested in this error --*/
1541+ END CATCH ;
15371542
15381543 DECLARE @Actual NVARCHAR (MAX ) = (SELECT Result FROM tSQLt .TestResult );
15391544
15451550CREATE PROCEDURE AnnotationNoTransactionTests.[test tSQLt.Private_RunTest_TestExecution is not called if SkipTest & NoTransaction]
15461551AS
15471552BEGIN
1548- EXEC tSQLt .Fail ' This test has gone horribly wrong and kills tSQLt.' ;
1553+ -- EXEC tSQLt.Fail 'This test has gone horribly wrong and kills tSQLt.';
15491554 EXEC tSQLt .NewTestClass ' MyInnerTests'
15501555 EXEC ('
15511556 --[@' + ' tSQLt:NoTransaction](DEFAULT)
@@ -1556,35 +1561,30 @@ BEGIN
15561561 RETURN;
15571562 END;
15581563 ' );
1559- EXEC tSQLt .SpyProcedure @ProcedureName = ' tSQLt.Private_RunTest_TestExecution' , @CallOriginal= 1 ;
15601564
1561- EXEC tSQLt .SetSummaryError 0 ;
1562- EXEC tSQLt .Run ' MyInnerTests.[test1]' ;
1565+ DECLARE @Actual TABLE (_id_ INT , TestName NVARCHAR (MAX ));/* -- @TableVariables persist regardless of transaction rollbacks --*/
1566+ DECLARE @TranName CHAR (32 );EXEC tSQLt .GetNewTranName @TranName= @TranName OUT ;
1567+ SAVE TRAN @TranName;
1568+ EXEC tSQLt .SpyProcedure @ProcedureName = ' tSQLt.Private_RunTest_TestExecution' , @CallOriginal= 1 ;
1569+ EXEC tSQLt .SpyProcedure @ProcedureName = ' tSQLt.UndoTestDoubles' ; /* --<-- only needed if test fails, so we get a clearer fail message --<--*/
15631570
1564- SELECT * INTO #Actual FROM tSQLt .Private_RunTest_TestExecution_SpyProcedureLog ;
1571+ EXEC tSQLt .SetSummaryError 0 ;
1572+ EXEC tSQLt .Run ' MyInnerTests.[test1]' ;
1573+ INSERT INTO @Actual SELECT _id_,TestName FROM tSQLt .Private_RunTest_TestExecution_SpyProcedureLog ;
1574+ ROLLBACK TRAN @TranName; /* -- Rolling back just the last 5 lines (though, not the insert into @Actual). --*/
1575+
1576+ SELECT * INTO #Actual FROM @Actual;
15651577 EXEC tSQLt .AssertEmptyTable @TableName = ' #Actual' ;
15661578END ;
15671579GO
15681580/* -----------------------------------------------------------------------------------------------*/
15691581GO
1570- -- [@tSQLt:SkipTest]('TODO')
1571- CREATE PROCEDURE AnnotationNoTransactionTests.[test no handler is called if SkipTest Annotation & NoTransaction annotations are used]
1572- AS
1573- BEGIN
1574- EXEC tSQLt .Fail ' TODO' ;
1575- END ;
1576- GO
1577- /* -----------------------------------------------------------------------------------------------*/
1578- GO
15791582
15801583/* -- TODO
15811584
15821585Mark NoTransaction tests somehow in TestResult
15831586
15841587Add to github
1585- - |19|[AnnotationNoTransactionTests].[test Schema-CleanUp error causes an appropr<...>essage to be written to the tSQLt.TestResult if there is a different error]| 94|Success|
1586- This shouldn't happen: ^^^
1587- - What happens when we have multiple annotations for other non-NoTransaction annotations? Did we test this???
15881588- add 100x'=' + test status (if not PASS) followed by empty line after test-end message (if verbose)
15891589
15901590
0 commit comments