@@ -38,43 +38,67 @@ private void OnTestCaseStarting(MessageHandlerArgs<ITestCaseStarting> args)
3838 var testNode = CreateTestNode ( args . Message ) ;
3939 testNode . Properties . Add ( InProgressTestNodeStateProperty . CachedInstance ) ;
4040 PublishTestUpdate ( testNode ) ;
41+ StopIfCancellationIsRequested ( args ) ;
4142 }
4243
4344 private void OnTestFailed ( MessageHandlerArgs < ITestFailed > args )
44- => OnFailure ( null , args . Message , args . Message ) ;
45+ {
46+ OnFailure ( null , args . Message , args . Message ) ;
47+ StopIfCancellationIsRequested ( args ) ;
48+ }
4549
4650 private void OnTestPassed ( MessageHandlerArgs < ITestPassed > args )
4751 {
4852 var testNode = CreateTestNode ( args . Message ) ;
4953 testNode . Properties . Add ( PassedTestNodeStateProperty . CachedInstance ) ;
5054
5155 PublishTestUpdate ( testNode ) ;
56+ StopIfCancellationIsRequested ( args ) ;
5257 }
5358
5459 private void OnTestSkipped ( MessageHandlerArgs < ITestSkipped > args )
5560 {
5661 var testNode = CreateTestNode ( args . Message ) ;
5762 testNode . Properties . Add ( new SkippedTestNodeStateProperty ( args . Message . Reason ) ) ;
5863 PublishTestUpdate ( testNode ) ;
64+ StopIfCancellationIsRequested ( args ) ;
5965 }
6066
6167 private void OnTestClassCleanupFailure ( MessageHandlerArgs < ITestClassCleanupFailure > args )
62- => OnCleanupFailure ( $ "Test Class Cleanup Failure ({ args . Message . TestClass . Class . Name } )", args . Message ) ;
68+ {
69+ OnCleanupFailure ( $ "Test Class Cleanup Failure ({ args . Message . TestClass . Class . Name } )", args . Message ) ;
70+ StopIfCancellationIsRequested ( args ) ;
71+ }
6372
6473 private void OnTestAssemblyCleanupFailure ( MessageHandlerArgs < ITestAssemblyCleanupFailure > args )
65- => OnCleanupFailure ( $ "Test Assembly Cleanup Failure ({ args . Message . TestAssembly . Assembly . Name } )", args . Message ) ;
74+ {
75+ OnCleanupFailure ( $ "Test Assembly Cleanup Failure ({ args . Message . TestAssembly . Assembly . Name } )", args . Message ) ;
76+ StopIfCancellationIsRequested ( args ) ;
77+ }
6678
6779 private void OnTestCaseCleanupFailure ( MessageHandlerArgs < ITestCaseCleanupFailure > args )
68- => OnCleanupFailure ( $ "Test Case Cleanup Failure ({ args . Message . TestCase . DisplayName } )", args . Message ) ;
80+ {
81+ OnCleanupFailure ( $ "Test Case Cleanup Failure ({ args . Message . TestCase . DisplayName } )", args . Message ) ;
82+ StopIfCancellationIsRequested ( args ) ;
83+ }
6984
7085 private void OnTestMethodCleanupFailure ( MessageHandlerArgs < ITestMethodCleanupFailure > args )
71- => OnCleanupFailure ( $ "Test Method Cleanup Failure ({ args . Message . TestMethod . TestClass . Class . Name } .{ args . Message . TestMethod . Method . Name } )", args . Message ) ;
86+ {
87+ OnCleanupFailure ( $ "Test Method Cleanup Failure ({ args . Message . TestMethod . TestClass . Class . Name } .{ args . Message . TestMethod . Method . Name } )", args . Message ) ;
88+ StopIfCancellationIsRequested ( args ) ;
89+ }
7290
7391 private void OnTestCollectionCleanupFailure ( MessageHandlerArgs < ITestCollectionCleanupFailure > args )
74- => OnCleanupFailure ( $ "Test Collection Cleanup Failure ({ args . Message . TestCollection . DisplayName } )", args . Message ) ;
92+ {
93+ OnCleanupFailure ( $ "Test Collection Cleanup Failure ({ args . Message . TestCollection . DisplayName } )", args . Message ) ;
94+ StopIfCancellationIsRequested ( args ) ;
95+ }
7596
7697 private void OnTestCleanupFailure ( MessageHandlerArgs < ITestCleanupFailure > args )
77- => OnCleanupFailure ( $ "Test Cleanup Failure ({ args . Message . Test . DisplayName } )", args . Message ) ;
98+ {
99+ OnCleanupFailure ( $ "Test Cleanup Failure ({ args . Message . Test . DisplayName } )", args . Message ) ;
100+ StopIfCancellationIsRequested ( args ) ;
101+ }
78102
79103 private void OnCleanupFailure < T > ( string failureName , T message ) where T : IFailureInformation , IExecutionMessage
80104 {
@@ -156,4 +180,12 @@ private TestNode CreateTestNode(ITestCaseMessage testMessage)
156180
157181 return testNode ;
158182 }
183+
184+ private void StopIfCancellationIsRequested ( MessageHandlerArgs args )
185+ {
186+ if ( _executeRequestContext . CancellationToken . IsCancellationRequested )
187+ {
188+ args . Stop ( ) ;
189+ }
190+ }
159191}
0 commit comments