Skip to content

Commit 7ba379f

Browse files
hvinettsinghsarab
authored andcommitted
Adding log prefixkey to html logger (#2204)
* added logprefix * tests added * added error when both logfileprefix and logfilevalue is given * filename edited when target framework is null * formatted * added framework null case in trxlogger
1 parent 89d102d commit 7ba379f

File tree

21 files changed

+219
-22
lines changed

21 files changed

+219
-22
lines changed

src/Microsoft.TestPlatform.Extensions.HtmlLogger/Constants.cs

+6-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,12 @@ public static class Constants
5151
/// <summary>
5252
/// Log file parameter key
5353
/// </summary>
54-
public const string LogFileNameKey = "LogFileName";
54+
public const string LogFileNameKey = "LogFileName";
55+
56+
/// <summary>
57+
/// Log file prefix parameter key
58+
/// </summary>
59+
public const string LogFilePrefixKey = "LogFilePrefix";
5560

5661
public static readonly TestProperty ExecutionIdProperty = TestProperty.Register("ExecutionId", ExecutionIdPropertyIdentifier, typeof(Guid), TestPropertyAttributes.Hidden, typeof(TestResult));
5762

src/Microsoft.TestPlatform.Extensions.HtmlLogger/HtmlLogger.cs

+29-6
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ namespace Microsoft.VisualStudio.TestPlatform.Extensions.HtmlLogger
2222

2323
using HtmlResource = Resources.Resources;
2424
using HtmlLoggerConstants = Constants;
25+
using NuGet.Frameworks;
2526

2627
/// <summary>
2728
/// Logger for generating Html.
@@ -137,6 +138,14 @@ public void Initialize(TestLoggerEvents events, Dictionary<string, string> param
137138
}
138139

139140
parametersDictionary = parameters;
141+
142+
if (parameters.TryGetValue(HtmlLoggerConstants.LogFilePrefixKey, out string logFilePrefixValue) && parameters.TryGetValue(HtmlLoggerConstants.LogFileNameKey, out string logFileNameValue))
143+
{
144+
var htmlParameterErrorMsg = string.Format(CultureInfo.CurrentCulture, HtmlResource.PrefixAndNameProvidedError);
145+
EqtTrace.Error(htmlParameterErrorMsg);
146+
throw new ArgumentException(htmlParameterErrorMsg);
147+
}
148+
140149
this.Initialize(events, parameters[DefaultLoggerParameterNames.TestRunDirectory]);
141150
}
142151

@@ -153,7 +162,7 @@ public void TestMessageHandler(object sender, TestRunMessageEventArgs e)
153162
switch (e.Level)
154163
{
155164
case TestMessageLevel.Informational:
156-
if(TestRunDetails.RunLevelMessageInformational == null)
165+
if (TestRunDetails.RunLevelMessageInformational == null)
157166
{
158167
TestRunDetails.RunLevelMessageInformational = new List<string>();
159168
}
@@ -273,11 +282,25 @@ public void TestRunCompleteHandler(object sender, TestRunCompleteEventArgs e)
273282
PassPercentage = (PassedTests * 100) / TotalTests,
274283
TotalRunTime = GetFormattedDurationString(e.ElapsedTimeInRunningTests),
275284
};
276-
var isLogFileNameParameterExists = parametersDictionary.TryGetValue(HtmlLoggerConstants.LogFileNameKey,
277-
out string logFileNameValue);
278-
if (isLogFileNameParameterExists && !string.IsNullOrWhiteSpace(logFileNameValue))
285+
if (this.parametersDictionary.TryGetValue(HtmlLoggerConstants.LogFilePrefixKey, out string logFilePrefixValue) && !string.IsNullOrWhiteSpace(logFilePrefixValue))
286+
{
287+
288+
var framework = this.parametersDictionary[DefaultLoggerParameterNames.TargetFramework];
289+
if (framework != null)
290+
{
291+
framework = NuGetFramework.Parse(framework).GetShortFolderName();
292+
logFilePrefixValue = logFilePrefixValue + "_" + framework;
293+
}
294+
295+
logFilePrefixValue = logFilePrefixValue + DateTime.Now.ToString("_yyyyMMddHHmmss", DateTimeFormatInfo.InvariantInfo) + $".{HtmlLoggerConstants.HtmlFileExtension}";
296+
this.HtmlFilePath = Path.Combine(TestResultsDirPath, logFilePrefixValue);
297+
}
298+
else
279299
{
280-
HtmlFilePath = Path.Combine(TestResultsDirPath, logFileNameValue);
300+
if (parametersDictionary.TryGetValue(HtmlLoggerConstants.LogFileNameKey, out string logFileNameValue) && !string.IsNullOrWhiteSpace(logFileNameValue))
301+
{
302+
this.HtmlFilePath = Path.Combine(TestResultsDirPath, logFileNameValue);
303+
}
281304
}
282305

283306
PopulateHtmlFile();
@@ -410,7 +433,7 @@ internal string GetFormattedDurationString(TimeSpan duration)
410433
time.Add(duration.Milliseconds + "ms");
411434
}
412435
}
413-
}
436+
}
414437

415438
return time.Count == 0 ? "< 1ms" : string.Join(" ", time);
416439
}

src/Microsoft.TestPlatform.Extensions.HtmlLogger/Resources/Resources.Designer.cs

+10-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/Microsoft.TestPlatform.Extensions.HtmlLogger/Resources/Resources.resx

+3
Original file line numberDiff line numberDiff line change
@@ -123,4 +123,7 @@
123123
<data name="HtmlLoggerError" xml:space="preserve">
124124
<value>Html Logger Error : {0}</value>
125125
</data>
126+
<data name="PrefixAndNameProvidedError" xml:space="preserve">
127+
<value>The parameters LogFileName and LogFilePrefix cannot be given together.</value>
128+
</data>
126129
</root>

src/Microsoft.TestPlatform.Extensions.HtmlLogger/Resources/xlf/Resources.cs.xlf

+5
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,11 @@
3030
<target state="new">Html Logger Error : {0}</target>
3131
<note></note>
3232
</trans-unit>
33+
<trans-unit id="PrefixAndNameProvidedError">
34+
<source>The parameters LogFileName and LogFilePrefix cannot be given together.</source>
35+
<target state="new">The parameters LogFileName and LogFilePrefix cannot be given together.</target>
36+
<note></note>
37+
</trans-unit>
3338
</body>
3439
</file>
3540
</xliff>

src/Microsoft.TestPlatform.Extensions.HtmlLogger/Resources/xlf/Resources.de.xlf

+5
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,11 @@
3030
<target state="new">Html Logger Error : {0}</target>
3131
<note></note>
3232
</trans-unit>
33+
<trans-unit id="PrefixAndNameProvidedError">
34+
<source>The parameters LogFileName and LogFilePrefix cannot be given together.</source>
35+
<target state="new">The parameters LogFileName and LogFilePrefix cannot be given together.</target>
36+
<note></note>
37+
</trans-unit>
3338
</body>
3439
</file>
3540
</xliff>

src/Microsoft.TestPlatform.Extensions.HtmlLogger/Resources/xlf/Resources.es.xlf

+5
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,11 @@
3030
<target state="new">Html Logger Error : {0}</target>
3131
<note></note>
3232
</trans-unit>
33+
<trans-unit id="PrefixAndNameProvidedError">
34+
<source>The parameters LogFileName and LogFilePrefix cannot be given together.</source>
35+
<target state="new">The parameters LogFileName and LogFilePrefix cannot be given together.</target>
36+
<note></note>
37+
</trans-unit>
3338
</body>
3439
</file>
3540
</xliff>

src/Microsoft.TestPlatform.Extensions.HtmlLogger/Resources/xlf/Resources.fr.xlf

+5
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,11 @@
3030
<target state="new">Html Logger Error : {0}</target>
3131
<note></note>
3232
</trans-unit>
33+
<trans-unit id="PrefixAndNameProvidedError">
34+
<source>The parameters LogFileName and LogFilePrefix cannot be given together.</source>
35+
<target state="new">The parameters LogFileName and LogFilePrefix cannot be given together.</target>
36+
<note></note>
37+
</trans-unit>
3338
</body>
3439
</file>
3540
</xliff>

src/Microsoft.TestPlatform.Extensions.HtmlLogger/Resources/xlf/Resources.it.xlf

+5
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,11 @@
3030
<target state="new">Html Logger Error : {0}</target>
3131
<note></note>
3232
</trans-unit>
33+
<trans-unit id="PrefixAndNameProvidedError">
34+
<source>The parameters LogFileName and LogFilePrefix cannot be given together.</source>
35+
<target state="new">The parameters LogFileName and LogFilePrefix cannot be given together.</target>
36+
<note></note>
37+
</trans-unit>
3338
</body>
3439
</file>
3540
</xliff>

src/Microsoft.TestPlatform.Extensions.HtmlLogger/Resources/xlf/Resources.ja.xlf

+5
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,11 @@
3030
<target state="new">Html Logger Error : {0}</target>
3131
<note></note>
3232
</trans-unit>
33+
<trans-unit id="PrefixAndNameProvidedError">
34+
<source>The parameters LogFileName and LogFilePrefix cannot be given together.</source>
35+
<target state="new">The parameters LogFileName and LogFilePrefix cannot be given together.</target>
36+
<note></note>
37+
</trans-unit>
3338
</body>
3439
</file>
3540
</xliff>

src/Microsoft.TestPlatform.Extensions.HtmlLogger/Resources/xlf/Resources.ko.xlf

+5
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,11 @@
3030
<target state="new">Html Logger Error : {0}</target>
3131
<note></note>
3232
</trans-unit>
33+
<trans-unit id="PrefixAndNameProvidedError">
34+
<source>The parameters LogFileName and LogFilePrefix cannot be given together.</source>
35+
<target state="new">The parameters LogFileName and LogFilePrefix cannot be given together.</target>
36+
<note></note>
37+
</trans-unit>
3338
</body>
3439
</file>
3540
</xliff>

src/Microsoft.TestPlatform.Extensions.HtmlLogger/Resources/xlf/Resources.pl.xlf

+5
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,11 @@
3030
<target state="new">Html Logger Error : {0}</target>
3131
<note></note>
3232
</trans-unit>
33+
<trans-unit id="PrefixAndNameProvidedError">
34+
<source>The parameters LogFileName and LogFilePrefix cannot be given together.</source>
35+
<target state="new">The parameters LogFileName and LogFilePrefix cannot be given together.</target>
36+
<note></note>
37+
</trans-unit>
3338
</body>
3439
</file>
3540
</xliff>

src/Microsoft.TestPlatform.Extensions.HtmlLogger/Resources/xlf/Resources.pt-BR.xlf

+5
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,11 @@
3030
<target state="new">Html Logger Error : {0}</target>
3131
<note></note>
3232
</trans-unit>
33+
<trans-unit id="PrefixAndNameProvidedError">
34+
<source>The parameters LogFileName and LogFilePrefix cannot be given together.</source>
35+
<target state="new">The parameters LogFileName and LogFilePrefix cannot be given together.</target>
36+
<note></note>
37+
</trans-unit>
3338
</body>
3439
</file>
3540
</xliff>

src/Microsoft.TestPlatform.Extensions.HtmlLogger/Resources/xlf/Resources.ru.xlf

+5
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,11 @@
3030
<target state="new">Html Logger Error : {0}</target>
3131
<note></note>
3232
</trans-unit>
33+
<trans-unit id="PrefixAndNameProvidedError">
34+
<source>The parameters LogFileName and LogFilePrefix cannot be given together.</source>
35+
<target state="new">The parameters LogFileName and LogFilePrefix cannot be given together.</target>
36+
<note></note>
37+
</trans-unit>
3338
</body>
3439
</file>
3540
</xliff>

src/Microsoft.TestPlatform.Extensions.HtmlLogger/Resources/xlf/Resources.tr.xlf

+5
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,11 @@
3030
<target state="new">Html Logger Error : {0}</target>
3131
<note></note>
3232
</trans-unit>
33+
<trans-unit id="PrefixAndNameProvidedError">
34+
<source>The parameters LogFileName and LogFilePrefix cannot be given together.</source>
35+
<target state="new">The parameters LogFileName and LogFilePrefix cannot be given together.</target>
36+
<note></note>
37+
</trans-unit>
3338
</body>
3439
</file>
3540
</xliff>

src/Microsoft.TestPlatform.Extensions.HtmlLogger/Resources/xlf/Resources.xlf

+5
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,11 @@
1212
<target state="new">Html Logger Error : {0}</target>
1313
<note></note>
1414
</trans-unit>
15+
<trans-unit id="PrefixAndNameProvidedError">
16+
<source>The parameters LogFileName and LogFilePrefix cannot be given together.</source>
17+
<target state="new">The parameters LogFileName and LogFilePrefix cannot be given together.</target>
18+
<note></note>
19+
</trans-unit>
1520
</body>
1621
</file>
1722
</xliff>

src/Microsoft.TestPlatform.Extensions.HtmlLogger/Resources/xlf/Resources.zh-Hans.xlf

+5
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,11 @@
3030
<target state="new">Html Logger Error : {0}</target>
3131
<note></note>
3232
</trans-unit>
33+
<trans-unit id="PrefixAndNameProvidedError">
34+
<source>The parameters LogFileName and LogFilePrefix cannot be given together.</source>
35+
<target state="new">The parameters LogFileName and LogFilePrefix cannot be given together.</target>
36+
<note></note>
37+
</trans-unit>
3338
</body>
3439
</file>
3540
</xliff>

src/Microsoft.TestPlatform.Extensions.HtmlLogger/Resources/xlf/Resources.zh-Hant.xlf

+5
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,11 @@
3030
<target state="new">Html Logger Error : {0}</target>
3131
<note></note>
3232
</trans-unit>
33+
<trans-unit id="PrefixAndNameProvidedError">
34+
<source>The parameters LogFileName and LogFilePrefix cannot be given together.</source>
35+
<target state="new">The parameters LogFileName and LogFilePrefix cannot be given together.</target>
36+
<note></note>
37+
</trans-unit>
3338
</body>
3439
</file>
3540
</xliff>

src/Microsoft.TestPlatform.Extensions.TrxLogger/TrxLogger.cs

+7-4
Original file line numberDiff line numberDiff line change
@@ -489,12 +489,15 @@ private void DeriveTrxFilePath()
489489
{
490490
if (!string.IsNullOrWhiteSpace(logFilePrefixValue))
491491
{
492-
var framework = this.parametersDictionary[DefaultLoggerParameterNames.TargetFramework] ?? string.Empty;
493-
framework = NuGetFramework.Parse(framework).GetShortFolderName();
492+
var framework = this.parametersDictionary[DefaultLoggerParameterNames.TargetFramework];
493+
if (framework != null)
494+
{
495+
framework = NuGetFramework.Parse(framework).GetShortFolderName();
496+
logFilePrefixValue = logFilePrefixValue + "_" + framework;
497+
}
494498

495-
logFilePrefixValue = logFilePrefixValue.Replace(".trx", string.Empty) + "_" + framework + DateTime.Now.ToString("_yyyyMMddHHmmss", DateTimeFormatInfo.InvariantInfo) + this.trxFileExtension;
499+
logFilePrefixValue = logFilePrefixValue + DateTime.Now.ToString("_yyyyMMddHHmmss", DateTimeFormatInfo.InvariantInfo) + this.trxFileExtension;
496500
this.trxFilePath = Path.Combine(this.testResultsDirPath, logFilePrefixValue);
497-
498501
return;
499502
}
500503
}

0 commit comments

Comments
 (0)