1
1
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
2
2
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
3
3
/* eslint-disable @typescript-eslint/no-unsafe-argument */
4
- import { red , yellow } from "ansi-colors" ;
4
+ import { red , yellow , blue } from "ansi-colors" ;
5
5
import * as vscode from "vscode" ;
6
6
import { DebugManager } from "./debugmanager" ;
7
7
@@ -281,11 +281,11 @@ export class TestControllerManager {
281
281
break ;
282
282
}
283
283
case "robotLog" : {
284
- this . OnRobotLogMessageEvent ( event . session . configuration . runId , event . body as RobotLogMessageEvent ) ;
284
+ this . OnRobotLogMessageEvent ( event . session . configuration . runId , event . body as RobotLogMessageEvent , false ) ;
285
285
break ;
286
286
}
287
287
case "robotMessage" : {
288
- this . OnRobotLogMessageEvent ( event . session . configuration . runId , event . body as RobotLogMessageEvent ) ;
288
+ this . OnRobotLogMessageEvent ( event . session . configuration . runId , event . body as RobotLogMessageEvent , true ) ;
289
289
break ;
290
290
}
291
291
}
@@ -1020,7 +1020,7 @@ export class TestControllerManager {
1020
1020
1021
1021
if ( included . size === 0 ) return ;
1022
1022
1023
- const run = this . testController . createTestRun ( request ) ;
1023
+ const run = this . testController . createTestRun ( request , undefined ) ;
1024
1024
let run_started = false ;
1025
1025
1026
1026
token . onCancellationRequested ( async ( _ ) => {
@@ -1225,7 +1225,7 @@ export class TestControllerManager {
1225
1225
if ( run !== undefined ) {
1226
1226
const item = this . findTestItemById ( event . id ) ;
1227
1227
if ( item ) {
1228
- const message = new vscode . TestMessage ( event . attributes ?. message ?? "" ) ;
1228
+ const message = new vscode . TestMessage ( ( event . attributes ?. message ?? "" ) . replaceAll ( "\n" , "\r\n" ) ) ;
1229
1229
1230
1230
if ( event . attributes . source ) {
1231
1231
message . location = new vscode . Location (
@@ -1268,28 +1268,11 @@ export class TestControllerManager {
1268
1268
{
1269
1269
const messages : vscode . TestMessage [ ] = [ ] ;
1270
1270
1271
- if ( event . failedKeywords ) {
1272
- for ( const keyword of event . failedKeywords ) {
1273
- const message = new vscode . TestMessage ( keyword . message ?? "" ) ;
1274
-
1275
- if ( keyword . source ) {
1276
- message . location = new vscode . Location (
1277
- vscode . Uri . file ( keyword . source ) ,
1278
- new vscode . Range (
1279
- new vscode . Position ( ( keyword . lineno ?? 1 ) - 1 , 0 ) ,
1280
- new vscode . Position ( keyword . lineno ?? 1 , 0 ) ,
1281
- ) ,
1282
- ) ;
1283
- }
1284
-
1285
- messages . push ( message ) ;
1286
- }
1287
- }
1288
1271
if (
1289
1272
! event . attributes ?. message ||
1290
1273
! event . failedKeywords ?. find ( ( v ) => v . message === event . attributes ?. message )
1291
1274
) {
1292
- const message = new vscode . TestMessage ( event . attributes . message ?? "" ) ;
1275
+ const message = new vscode . TestMessage ( ( event . attributes . message ?? "" ) . replaceAll ( "\n" , "\r\n" ) ) ;
1293
1276
1294
1277
if ( event . attributes . source ) {
1295
1278
message . location = new vscode . Location (
@@ -1303,6 +1286,24 @@ export class TestControllerManager {
1303
1286
messages . push ( message ) ;
1304
1287
}
1305
1288
1289
+ if ( event . failedKeywords ) {
1290
+ for ( const keyword of event . failedKeywords . reverse ( ) ) {
1291
+ const message = new vscode . TestMessage ( ( keyword . message ?? "" ) . replaceAll ( "\n" , "\r\n" ) ) ;
1292
+
1293
+ if ( keyword . source ) {
1294
+ message . location = new vscode . Location (
1295
+ vscode . Uri . file ( keyword . source ) ,
1296
+ new vscode . Range (
1297
+ new vscode . Position ( ( keyword . lineno ?? 1 ) - 1 , 0 ) ,
1298
+ new vscode . Position ( keyword . lineno ?? 1 , 0 ) ,
1299
+ ) ,
1300
+ ) ;
1301
+ }
1302
+
1303
+ messages . push ( message ) ;
1304
+ }
1305
+ }
1306
+
1306
1307
if ( ! item ?. canResolveChildren ) {
1307
1308
if ( event . attributes . status === "FAIL" ) {
1308
1309
run . failed ( item , messages , event . attributes . elapsedtime ) ;
@@ -1317,7 +1318,7 @@ export class TestControllerManager {
1317
1318
}
1318
1319
}
1319
1320
1320
- private OnRobotLogMessageEvent ( runId : string | undefined , event : RobotLogMessageEvent ) : void {
1321
+ private OnRobotLogMessageEvent ( runId : string | undefined , event : RobotLogMessageEvent , isMessage : boolean ) : void {
1321
1322
if ( runId === undefined ) return ;
1322
1323
1323
1324
const run = this . testRuns . get ( runId ) ;
@@ -1348,8 +1349,10 @@ export class TestControllerManager {
1348
1349
break ;
1349
1350
}
1350
1351
1352
+ const messageStyle = isMessage ? blue : ( s : string ) => s ;
1353
+
1351
1354
run . appendOutput (
1352
- `[ ${ style ( event . level ) } ] ${ event . message . replaceAll ( "\n" , "\r\n" ) } ` + "\r\n" ,
1355
+ `[ ${ style ( event . level ) } ] ${ messageStyle ( event . message . replaceAll ( "\n" , "\r\n" ) ) } ` + "\r\n" ,
1353
1356
location ,
1354
1357
event . itemId !== undefined ? this . findTestItemById ( event . itemId ) : undefined ,
1355
1358
) ;
0 commit comments