-
Notifications
You must be signed in to change notification settings - Fork 331
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix: Logger attachments not coming in vsts test run #1431
Changes from 4 commits
7435502
588f6ef
4ae9c13
34f1507
c1c6427
f3a69a1
9d89944
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -87,8 +87,8 @@ public void DiscoverAsync() | |
|
||
// Invoke OnDiscoveryStart event | ||
var discoveryStartEvent = new DiscoveryStartEventArgs(this.DiscoveryCriteria); | ||
this.OnDiscoveryStart.SafeInvoke(this, discoveryStartEvent, "DiscoveryRequest.DiscoveryStart"); | ||
this.LoggerManager.HandleDiscoveryStart(discoveryStartEvent); | ||
this.OnDiscoveryStart.SafeInvoke(this, discoveryStartEvent, "DiscoveryRequest.DiscoveryStart"); | ||
|
||
this.DiscoveryManager.DiscoverTests(this.DiscoveryCriteria, this); | ||
} | ||
|
@@ -270,13 +270,12 @@ public void HandleDiscoveryComplete(DiscoveryCompleteEventArgs discoveryComplete | |
if (lastChunk != null && lastChunk.Count() > 0) | ||
{ | ||
var discoveredTestsEvent = new DiscoveredTestsEventArgs(lastChunk); | ||
this.OnDiscoveredTests.SafeInvoke(this, discoveredTestsEvent, "DiscoveryRequest.DiscoveryComplete"); | ||
this.LoggerManager.HandleDiscoveredTests(discoveredTestsEvent); | ||
this.OnDiscoveredTests.SafeInvoke(this, discoveredTestsEvent, "DiscoveryRequest.DiscoveryComplete"); | ||
} | ||
|
||
this.OnDiscoveryComplete.SafeInvoke(this, discoveryCompleteEventArgs, "DiscoveryRequest.DiscoveryComplete"); | ||
this.LoggerManager.HandleDiscoveryComplete(discoveryCompleteEventArgs); | ||
this.LoggerManager.Dispose(); | ||
this.OnDiscoveryComplete.SafeInvoke(this, discoveryCompleteEventArgs, "DiscoveryRequest.DiscoveryComplete"); | ||
} | ||
finally | ||
{ | ||
|
@@ -343,8 +342,8 @@ public void HandleDiscoveredTests(IEnumerable<TestCase> discoveredTestCases) | |
} | ||
|
||
var discoveredTestsEvent = new DiscoveredTestsEventArgs(discoveredTestCases); | ||
this.OnDiscoveredTests.SafeInvoke(this, discoveredTestsEvent, "DiscoveryRequest.OnDiscoveredTests"); | ||
this.LoggerManager.HandleDiscoveredTests(discoveredTestsEvent); | ||
this.OnDiscoveredTests.SafeInvoke(this, discoveredTestsEvent, "DiscoveryRequest.OnDiscoveredTests"); | ||
} | ||
|
||
if (EqtTrace.IsInfoEnabled) | ||
|
@@ -378,8 +377,8 @@ public void HandleLogMessage(TestMessageLevel level, string message) | |
} | ||
|
||
var testRunMessageEvent = new TestRunMessageEventArgs(level, message); | ||
this.OnDiscoveryMessage.SafeInvoke(this, testRunMessageEvent, "DiscoveryRequest.OnTestMessageRecieved"); | ||
this.LoggerManager.HandleDiscoveryMessage(testRunMessageEvent); | ||
this.OnDiscoveryMessage.SafeInvoke(this, testRunMessageEvent, "DiscoveryRequest.OnTestMessageRecieved"); | ||
} | ||
|
||
if (EqtTrace.IsInfoEnabled) | ||
|
@@ -394,54 +393,93 @@ public void HandleLogMessage(TestMessageLevel level, string message) | |
/// <param name="rawMessage">Raw message.</param> | ||
public void HandleRawMessage(string rawMessage) | ||
{ | ||
if (this.requestData.IsTelemetryOptedIn) | ||
// Note: Deserialize rawMessage only if required. | ||
|
||
var message = this.LoggerManager.LoggersInitialized || this.requestData.IsTelemetryOptedIn ? | ||
this.dataSerializer.DeserializeMessage(rawMessage) : null; | ||
|
||
if (string.Equals(message?.MessageType, MessageType.DiscoveryComplete)) | ||
{ | ||
var message = this.dataSerializer.DeserializeMessage(rawMessage); | ||
var discoveryCompletePayload = this.dataSerializer.DeserializePayload<DiscoveryCompletePayload>(message); | ||
rawMessage = UpdateRawMessageWithTelemetryInfo(discoveryCompletePayload, message) ?? rawMessage; | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
what if telemetry is disabled, do we still want to add telemetry data to message? #Closed There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. No we are not adding telemetry data when its disabled #Closed |
||
HandleLoggerManagerDiscoveryComplete(discoveryCompletePayload); | ||
} | ||
|
||
if (string.Equals(message.MessageType, MessageType.DiscoveryComplete)) | ||
{ | ||
var discoveryCompletePayload = | ||
this.dataSerializer.DeserializePayload<DiscoveryCompletePayload>(message); | ||
this.OnRawMessageReceived?.Invoke(this, rawMessage); | ||
} | ||
|
||
if (discoveryCompletePayload != null) | ||
{ | ||
if (discoveryCompletePayload.Metrics == null) | ||
{ | ||
discoveryCompletePayload.Metrics = this.requestData.MetricsCollection.Metrics; | ||
} | ||
else | ||
{ | ||
foreach (var kvp in this.requestData.MetricsCollection.Metrics) | ||
{ | ||
discoveryCompletePayload.Metrics[kvp.Key] = kvp.Value; | ||
} | ||
} | ||
/// <summary> | ||
/// Handles LoggerManager's DiscoveryComplete. | ||
/// </summary> | ||
/// <param name="discoveryCompletePayload">Discovery complete payload.</param> | ||
private void HandleLoggerManagerDiscoveryComplete(DiscoveryCompletePayload discoveryCompletePayload) | ||
{ | ||
if (this.LoggerManager.LoggersInitialized && discoveryCompletePayload != null) | ||
{ | ||
// Send last chunk to logger manager. | ||
if (discoveryCompletePayload.LastDiscoveredTests != null) | ||
{ | ||
var discoveredTestsEventArgs = new DiscoveredTestsEventArgs(discoveryCompletePayload.LastDiscoveredTests); | ||
this.LoggerManager.HandleDiscoveredTests(discoveredTestsEventArgs); | ||
} | ||
|
||
var discoveryFinalTimeTakenForDesignMode = DateTime.UtcNow - this.discoveryStartTime; | ||
// Send discovery complete to logger manager. | ||
var discoveryCompleteEventArgs = new DiscoveryCompleteEventArgs(discoveryCompletePayload.TotalTests, discoveryCompletePayload.IsAborted); | ||
discoveryCompleteEventArgs.Metrics = discoveryCompletePayload.Metrics; | ||
this.LoggerManager.HandleDiscoveryComplete(discoveryCompleteEventArgs); | ||
} | ||
} | ||
|
||
// Collecting Total Time Taken | ||
discoveryCompletePayload.Metrics[TelemetryDataConstants.TimeTakenInSecForDiscovery] = discoveryFinalTimeTakenForDesignMode.TotalSeconds; | ||
} | ||
/// <summary> | ||
/// Update raw message with telemetry info. | ||
/// </summary> | ||
/// <param name="discoveryCompletePayload">Discovery complete payload.</param> | ||
/// <param name="message">Message.</param> | ||
/// <returns>Updated rawMessage.</returns> | ||
private string UpdateRawMessageWithTelemetryInfo(DiscoveryCompletePayload discoveryCompletePayload, Message message) | ||
{ | ||
var rawMessage = default(string); | ||
|
||
if (message is VersionedMessage) | ||
if (this.requestData.IsTelemetryOptedIn) | ||
{ | ||
if (discoveryCompletePayload != null) | ||
{ | ||
if (discoveryCompletePayload.Metrics == null) | ||
{ | ||
var version = ((VersionedMessage)message).Version; | ||
|
||
rawMessage = this.dataSerializer.SerializePayload( | ||
MessageType.DiscoveryComplete, | ||
discoveryCompletePayload, | ||
version); | ||
discoveryCompletePayload.Metrics = this.requestData.MetricsCollection.Metrics; | ||
} | ||
else | ||
{ | ||
rawMessage = this.dataSerializer.SerializePayload( | ||
MessageType.DiscoveryComplete, | ||
discoveryCompletePayload); | ||
foreach (var kvp in this.requestData.MetricsCollection.Metrics) | ||
{ | ||
discoveryCompletePayload.Metrics[kvp.Key] = kvp.Value; | ||
} | ||
} | ||
|
||
var discoveryFinalTimeTakenForDesignMode = DateTime.UtcNow - this.discoveryStartTime; | ||
|
||
// Collecting Total Time Taken | ||
discoveryCompletePayload.Metrics[TelemetryDataConstants.TimeTakenInSecForDiscovery] = discoveryFinalTimeTakenForDesignMode.TotalSeconds; | ||
} | ||
|
||
if (message is VersionedMessage) | ||
{ | ||
var version = ((VersionedMessage)message).Version; | ||
|
||
rawMessage = this.dataSerializer.SerializePayload( | ||
MessageType.DiscoveryComplete, | ||
discoveryCompletePayload, | ||
version); | ||
} | ||
else | ||
{ | ||
rawMessage = this.dataSerializer.SerializePayload( | ||
MessageType.DiscoveryComplete, | ||
discoveryCompletePayload); | ||
} | ||
} | ||
|
||
this.OnRawMessageReceived?.Invoke(this, rawMessage); | ||
return rawMessage; | ||
} | ||
|
||
#endregion | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Where are we disposing now ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In LoggerManager.HandleDiscoveryCompelte